[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%
¿Hay alguna actualización sobre esto?
¿O estoy haciendo algo mal? El código que intento etiquetar es Javascript / React :)
Aparentemente está relacionado con la desestructuración de objetos como:
const { name, email } = user;
No he inspeccionado bien la advertencia.
Sin embargo, la entrada que dio parece válida ya que probé la entrada en el comando de nodo
Me gustaría que abriera una nueva edición para la entrada.
Si eres bueno en JavaScript, me gustaría conocer la especificación como referencia.
Vea https://github.com/universal-ctags/ctags/issues/1949#issuecomment -457829914 cómo luché.
const { name, email } = user;
name
y email
deben estar bien etiquetados.
[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 eres bueno en JavaScript, me gustaría conocer la especificación como referencia.
No estoy seguro si recibí su pregunta, pero la especificación para la Desestructuración de objetos está en la especificación ECMAScript:
https://www.ecma-international.org/ecma-262/6.0/#sec -destructuring-assign
:)
Gracias. Eso es lo que necesito.
¿Por qué no se aborda este problema? He tenido el mismo problema.
Gracias. Eso es lo que necesito.
¿Cómo eliminaste la advertencia?
¿Cómo eliminaste la advertencia?
No eliminé la advertencia.
¿Cómo eliminaste la advertencia?
No eliminé la advertencia.
bueno, tengo el mismo problema, {A, B} = some_obj
puede ser analizado correctamente por ctags.
Parece que nadie va a solucionar este problema.
Parece que nadie va a solucionar este problema.
Para la encuadernación estructural, lo intenté una vez.
[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 rama introduce tantos cambios.
Así que fusionarlo con la rama maestra que usamos a diario necesita más consideración.
this[0] = function() {};
En este caso, ctags no dice nada.
{
this[0] = function() {};
}
En este caso, recibí una advertencia. Esta será una solución de sugerencia importante para la entrada original.
Parece que nadie va a solucionar este problema.
Para la encuadernación estructural, lo intenté una vez.
[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 rama introduce tantos cambios.
Así que fusionarlo con la rama maestra que usamos a diario necesita más consideración.
Lo he probado, muy buena solución, gracias.
Hiciste estas ramas, tantos parches.
Hola
Aunque esto no contribuye al problema en ctags en sí, creé una función de shell ctags
que ignora esta advertencia específica para archivos JavaScript: https://gist.github.com/dietrichm/9e518549fd609173182ce36ac4726df2
En caso de que ejecute ctags con frecuencia en la línea de comando y desee ocultar las advertencias hasta que se solucione el problema.
Dietrich
También recibo esta advertencia con la desestructuración de matrices:
const [lang, setLang] = useState("en")
@Strangehill , ¿podrías agregar el mismo comentario al # 1112?
por supuesto
Gracias.