Код: Выделить всё
% ctags --version
Universal Ctags 6.0.0(caeb22af), Copyright (C) 2015-2022 Universal Ctags Team
Universal Ctags is derived from Exuberant Ctags.
Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
Compiled: Jul 19 2023, 23:18:38
URL: https://ctags.io/
Output version: 0.0
Optional compiled features: +wildcards, +regex, +gnulib_fnmatch, +gnulib_regex, +iconv, +option-directory, +xpath, +json, +interactive, +yaml, +case-insensitive-filenames, +packcc, +optscript, +pcre2
< /code>
Я использовал эту командную строку: < /p>
ctags -e -R --languages=javascript --exclude=node_modules --exclude=build
Несколько функций не появилось в файле тегов. Вот самый простой фрагмент кода, который я смог создать, который демонстрирует проблему: < /p>
const Comp1 = () => {
const x = (arg) => console.log(arg)
x(4)
return()
}
const Comp2 = (props) => {
return (
props.text
)
}
< /code>
Я помещаю этот код в файл с именем test.js и запустил его через эту команду CTAGS: < /p>
ctags -e --languages=javascript --exclude=node_modules --exclude=build --quiet test.js
< /code>
Тогда это появляется в файле тегов. Вы можете видеть, что функция Comp2 отсутствует. Я заменил управляющие символы на печатные символы: < /p>
test.js,81
const Comp1 = () => {^?Comp1^A1,0
const x = (arg) => console.log(arg)^?x^A2,24
< /code>
Но если вы делаете что -то столь же простое, как удалить строку «x (4)», чтобы код выглядел так: < /p>
const Comp1 = () => {
const x = (arg) => console.log(arg)
return()
}
const Comp2 = (props) => {
return (
props.text
)
}
< /code>
Тогда файл тегов выглядит так: < /p>
test.js,122
const Comp1 = () => {^?Comp1^A1,0
const x = (arg) => console.log(arg)^?x^A2,24
const Comp2 = (props) => {^?Comp2^A7,139
< /code>
Теперь функция Comp2 присутствует. Удаление кода JSX в операторе возврата также приведет к появлению функции COMP2 в файле тегов. Надеясь, что есть решение для этого, или, возможно, анализатор режима JSX для CTAGS, или, может быть, какой -то способ облегчить его.
Подробнее здесь: https://stackoverflow.com/questions/793 ... e-for-a-pr