Ctags: Javascript: Got "ctags: Warnung: Null-Tag ignorieren"

Erstellt am 25. Apr. 2016  ·  18Kommentare  ·  Quelle: 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

Alle 18 Kommentare

Gibt es ein Update dazu?

Oder mache ich etwas falsch? Der Code, den ich zu markieren versuche, ist Javascript / React :)

Anscheinend hängt es mit der Objektzerstörung zusammen wie:

    const { name, email } = user;

Ich habe die Warnung nicht gut geprüft.
Die von Ihnen angegebene Eingabe sieht jedoch gültig aus, als ich die Eingabe für den Knotenbefehl getestet habe
Ich möchte, dass Sie eine neue Ausgabe für die Eingabe öffnen.
Wenn Sie gut in JavaScript sind, würde ich gerne die Spezifikation als Referenz kennen.
Siehe https://github.com/universal-ctags/ctags/issues/1949#issuecomment -457829914, wie ich gekämpft habe.

const { name, email } = user;

name und email sollten gut markiert sein.


[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'

Wenn Sie gut in JavaScript sind, würde ich gerne die Spezifikation als Referenz kennen.

Ich bin mir nicht sicher, ob ich Ihre Frage habe, aber die Spezifikation für die Objektzerstörung befindet sich in der ECMAScript-Spezifikation:
https://www.ecma-international.org/ecma-262/6.0/#sec -destructuring-assign

:) :)

Vielen Dank. Das brauche ich.

Warum wird dieses Problem nicht behoben? Ich habe das gleiche Problem.

Vielen Dank. Das brauche ich.

Wie haben Sie die Warnung entfernt?

Wie haben Sie die Warnung entfernt?

Ich habe die Warnung nicht entfernt.

Wie haben Sie die Warnung entfernt?

Ich habe die Warnung nicht entfernt.

Nun, ich habe das gleiche Problem: {A, B} = some_obj kann von ctags korrekt analysiert werden.

Es sieht so aus, als würde niemand dieses Problem beheben

Es sieht so aus, als würde niemand dieses Problem beheben

Für die destruktive Bindung habe ich es einmal versucht.

[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

Die Niederlassung führt so viele Änderungen ein.
Das Zusammenführen mit der Hauptniederlassung, die wir täglich verwenden, muss daher stärker berücksichtigt werden.

this[0] = function() {};

In diesem Fall sagt ctags nichts.

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

In diesem Fall habe ich eine Warnung erhalten. Dies ist ein wichtiger Hinweis für die ursprüngliche Eingabe.

Es sieht so aus, als würde niemand dieses Problem beheben

Für die destruktive Bindung habe ich es einmal versucht.

[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

Die Niederlassung führt so viele Änderungen ein.
Das Zusammenführen mit der Hauptniederlassung, die wir täglich verwenden, muss daher stärker berücksichtigt werden.

Ich habe es versucht, eine sehr gute Lösung, danke.
Hast du diese Zweige gemacht, so viele Patches.

Hallo

Obwohl dies nicht zum Problem in ctags selbst beiträgt, habe ich eine ctags -Shellfunktion erstellt, die diese spezielle Warnung für JavaScript-Dateien ignoriert: https://gist.github.com/dietrichm/9e518549fd609173182ce36ac4726df2

Nur für den Fall, dass Sie häufig ctags in der Befehlszeile ausführen und die Warnungen ausblenden möchten, bis das Problem behoben ist.

Dietrich

Ich erhalte auch diese Warnung bei der Array-Destrukturierung:
const [lang, setLang] = useState("en")

@ Strangehill , könnten Sie den gleichen Kommentar zu # 1112 hinzufügen?

Na sicher

Vielen Dank.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

softinio picture softinio  ·  6Kommentare

cweagans picture cweagans  ·  8Kommentare

jespinal picture jespinal  ·  8Kommentare

jayceekay picture jayceekay  ·  13Kommentare

sparkcanon picture sparkcanon  ·  3Kommentare