Ctags: javascript: Obtuve "ctags: Advertencia: ignorando la etiqueta nula"

Creado en 25 abr. 2016  ·  18Comentarios  ·  Fuente: 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

Todos 18 comentarios

¿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.

¿Fue útil esta página
0 / 5 - 0 calificaciones