Почему универсальные CTAG не могут записать некоторые функции в файле тегов для проекта с использованием React и JSX?Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Почему универсальные CTAG не могут записать некоторые функции в файле тегов для проекта с использованием React и JSX?

Сообщение Anonymous »

Я использую Emacs, и когда я начал свой проект React/JSX, я обнаружил, что Etags пропустил слишком много объявленных имен, но это не было проблемой, потому что проект был небольшим. Теперь проект вырос до 10 000 строк, и рабочие теги были бы действительно полезны, поэтому я попробовал универсальные CTAG: < /p>

Код: Выделить всё

% 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Symfony2 — Настройка облака тегов с использованием веса тегов для популярных тегов
    Anonymous » » в форуме Php
    0 Ответы
    84 Просмотры
    Последнее сообщение Anonymous
  • Как центрировать элементы в файле .jsx? [дубликат]
    Anonymous » » в форуме CSS
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Ошибка исходного кода ECMASCRING ECMASCRING в файле JSX из -за объявления интерфейса TypeScript
    Anonymous » » в форуме Javascript
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Как визуализировать внешний файл file.jsx в приложение в React js?
    Anonymous » » в форуме Javascript
    0 Ответы
    45 Просмотры
    Последнее сообщение Anonymous
  • Как использовать jsx React в качестве замены почтового шаблона блейда Laravel
    Гость » » в форуме Php
    0 Ответы
    76 Просмотры
    Последнее сообщение Гость

Вернуться в «Javascript»