Ctags: javascript: Vous avez "ctags: Avertissement: ignorer la balise nulle"

Créé le 25 avr. 2016  ·  18Commentaires  ·  Source: universal-ctags/ctags

[yamato@x201]~/var/ctags-github% cat /tmp/foo.js 
if (true) {
    this[0] = function() {};
}

[yamato@x201]~/var/ctags-github% ./ctags -o - /tmp/foo.js 
ctags: Warning: ignoring null tag in /tmp/foo.js(line: 2)
[yamato@x201]~/var/ctags-github% js /tmp/foo.js 
[yamato@x201]~/var/ctags-github%
Parser buenhancement

Tous les 18 commentaires

Y a-t-il une mise à jour à ce sujet?

Ou est-ce que je fais quelque chose de mal? Le code que j'essaie de taguer est Javascript / React :)

Apparemment, il est lié à la déstructuration d'objets comme:

    const { name, email } = user;

Je n'ai pas bien inspecté l'avertissement.
Cependant, l'entrée que vous avez donnée semble valide lorsque j'ai testé l'entrée sur la commande de nœud
Je voudrais que vous ouvriez un nouveau numéro pour l'entrée.
Si vous êtes bon en JavaScript, j'aimerais connaître la spécification comme référence.
Voir https://github.com/universal-ctags/ctags/issues/1949#issuecomment -457829914 comment j'ai lutté.

const { name, email } = user;

name et email doivent être bien étiquetés.


[yamato@slave]~% node
> var user = {name: 'a', email: 'b'}
var user = {name: 'a', email: 'b'}
undefined
> const { name, email } = user;
const { name, email } = user;
undefined
> name
name
'a'

Si vous êtes bon en JavaScript, j'aimerais connaître la spécification comme référence.

Je ne sais pas si j'ai bien compris votre question, mais la spécification de la destruction d'objets est sur la spécification ECMAScript:
https://www.ecma-international.org/ecma-262/6.0/#sec -destructuring-assignment

:)

Merci. C'est ce dont j'ai besoin.

Pourquoi ce problème n'est-il pas résolu? J'ai le même problème.

Merci. C'est ce dont j'ai besoin.

comment avez-vous supprimé l'avertissement?

comment avez-vous supprimé l'avertissement?

Je n'ai pas supprimé l'avertissement.

comment avez-vous supprimé l'avertissement?

Je n'ai pas supprimé l'avertissement.

eh bien, j'ai le même problème, {A, B} = some_obj peut être analysé correctement par les ctags.

Il semble que personne ne résoudra ce problème

Il semble que personne ne résoudra ce problème

Pour la liaison destructurale, j'ai essayé une fois.

[jet@living]/tmp% cd /tmp
cd /tmp
[jet@living]/tmp% git clone https://github.com/masatake/ctags.git
git clone https://github.com/masatake/ctags.git
Cloning into 'ctags'...
...
[jet@living]/tmp% cd ctags
cd ctags
[jet@living]/tmp/ctags% git checkout  origin/js-destructual-binding 
git checkout  origin/js-destructual-binding 
Note: switching to 'origin/js-destructual-binding'.
...
HEAD is now at 4eeac5b9 JavaScript: support more forms of destructuring assignments
[jet@living]/tmp/ctags% bash ./autogen.sh
bash ./autogen.sh
+ type autoreconf
...
optlib2c: translating optlib/inko.ctags to optlib/inko.c
+ ./misc/optlib2c optlib/inko.ctags
+ exit 0
[jet@living]/tmp/ctags% ./configure
./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
...
config.status: creating config.h
config.status: executing depfiles commands
[jet@living]/tmp/ctags% make -j 9
make -j 9
REPOINFO   main/repoinfo.h
make  all-recursive
make[1]: Entering directory '/tmp/ctags'
make[2]: Entering directory '/tmp/ctags'
...
  AR       libctags.a
  CCLD     ctags
  CCLD     mini-geany
make[2]: Leaving directory '/tmp/ctags'
make[1]: Leaving directory '/tmp/ctags'
[jet@living]/tmp/ctags% cat /tmp/bar.js 
cat /tmp/bar.js 
const { name, email } = user;

[jet@living]/tmp/ctags% ./ctags -o - /tmp/bar.js 
./ctags -o - /tmp/bar.js 
email   /tmp/bar.js /^const { name, email } = user;$/;" C
name    /tmp/bar.js /^const { name, email } = user;$/;" C

La branche introduit tant de changements.
Donc, le fusionner avec la branche principale que nous utilisons quotidiennement nécessite plus de considération.

this[0] = function() {};

Dans ce cas, ctags ne dit rien.

{
    this[0] = function() {};
}

Dans ce cas, j'ai reçu un avertissement. Ce sera un correctif d'indice important pour l'entrée d'origine.

Il semble que personne ne résoudra ce problème

Pour la liaison destructurale, j'ai essayé une fois.

[jet@living]/tmp% cd /tmp
cd /tmp
[jet@living]/tmp% git clone https://github.com/masatake/ctags.git
git clone https://github.com/masatake/ctags.git
Cloning into 'ctags'...
...
[jet@living]/tmp% cd ctags
cd ctags
[jet@living]/tmp/ctags% git checkout  origin/js-destructual-binding 
git checkout  origin/js-destructual-binding 
Note: switching to 'origin/js-destructual-binding'.
...
HEAD is now at 4eeac5b9 JavaScript: support more forms of destructuring assignments
[jet@living]/tmp/ctags% bash ./autogen.sh
bash ./autogen.sh
+ type autoreconf
...
optlib2c: translating optlib/inko.ctags to optlib/inko.c
+ ./misc/optlib2c optlib/inko.ctags
+ exit 0
[jet@living]/tmp/ctags% ./configure
./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
...
config.status: creating config.h
config.status: executing depfiles commands
[jet@living]/tmp/ctags% make -j 9
make -j 9
REPOINFO   main/repoinfo.h
make  all-recursive
make[1]: Entering directory '/tmp/ctags'
make[2]: Entering directory '/tmp/ctags'
...
  AR       libctags.a
  CCLD     ctags
  CCLD     mini-geany
make[2]: Leaving directory '/tmp/ctags'
make[1]: Leaving directory '/tmp/ctags'
[jet@living]/tmp/ctags% cat /tmp/bar.js 
cat /tmp/bar.js 
const { name, email } = user;

[jet@living]/tmp/ctags% ./ctags -o - /tmp/bar.js 
./ctags -o - /tmp/bar.js 
email /tmp/bar.js /^const { name, email } = user;$/;" C
name  /tmp/bar.js /^const { name, email } = user;$/;" C

La branche introduit tant de changements.
Donc, le fusionner avec la branche principale que nous utilisons quotidiennement nécessite plus de considération.

Je l'ai essayé, une très bonne solution, merci.
Avez-vous fait ces branches, autant de correctifs.

salut

Bien que cela ne contribue pas au problème dans ctags lui-même, j'ai créé une fonction shell ctags qui ignore cet avertissement spécifique pour les fichiers JavaScript: https://gist.github.com/dietrichm/9e518549fd609173182ce36ac4726df2

Juste au cas où vous exécuteriez fréquemment des ctags sur la ligne de commande et que vous souhaitiez masquer les avertissements jusqu'à ce que le problème soit résolu.

Dietrich

Je reçois également cet avertissement avec la déstructuration du tableau:
const [lang, setLang] = useState("en")

@Strangehill , pourriez-vous ajouter le même commentaire au # 1112?

bien sûr

Merci.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

fommil picture fommil  ·  19Commentaires

sparkcanon picture sparkcanon  ·  3Commentaires

liuchengxu picture liuchengxu  ·  8Commentaires

lvc picture lvc  ·  8Commentaires

fabiensabatie picture fabiensabatie  ·  3Commentaires