Как я могу сделать taglist сменную выставочную полезную информацию энергии для JavaScript?

Не становитесь слишком схваченными при попытке оптимизировать строковые операции в PHP. Конкатенация по сравнению с интерполяцией бессмысленна (в производительности реального мира), если Ваши запросы базы данных плохо записаны, или Вы не используете вида кэширующейся схемы. Запишите свои строковые операции таким способом, которым отладка Вашего кода позже будет легка, различия в производительности незначительны.

@uberfuzzy, Принимающий, это - просто вопрос о языке minutia, я предполагаю, что это прекрасно. Я просто пытаюсь добавить к разговору, что сравнение производительности между одинарной кавычкой, двойной кавычкой и heredoc в приложениях реального мира в бессмысленном, когда по сравнению с реальными приемниками производительности, такими как плохая база данных запрашивает.

14
задан Tom Frost 24 November 2009 в 14:59
поделиться

2 ответа

Got it! I dove into the taglist.vim code for awhile, and this is what I found:

taglist.vim forces ctags to use the same filetype that vim is using. So even though the ~/.ctags snippet I found via google is assigning my much-needed definitions to the new "js" language and applying it to files that end in .js, taglist is forcing ctags into using the "JavaScript" filetype that vim is using -- which is built right into ctags already.

The solution is to change the ~/.ctags file from what I've posted above to this:

--regex-JavaScript=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*new[ \t]+Object\(/\1/o,object/
--regex-JavaScript=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*\{/\1/o,object/
--regex-JavaScript=/([A-Za-z0-9._$()]+)[ \t]*[:=][ \t]*function[ \t]*\(/\1/f,function/
--regex-JavaScript=/function[ \t]+([A-Za-z0-9._$]+)[ \t]*\([^\]\)]*\)/\1/f,function/
--regex-JavaScript=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*new[ \t]+Array\(/\1/a,array/
--regex-JavaScript=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*\[/\1/a,array/
--regex-JavaScript=/([^= ]+)[ \t]*=[ \t]*[^""]'[^'']*/\1/s,string/
--regex-JavaScript=/([^= ]+)[ \t]*=[ \t]*[^'']"[^""]*/\1/s,string/

which alters the pre-existing JavaScript language definition directly, rather than creating a new language definition within ctags. Now, when taglib forces vim's registered filetype, the new definitions are used. Also missing from the previously posted ~/.ctags lines was the "kind" letter that Al mentioned in his answer, so those are included in my updated version as well.

From there, drop the following into your ~/.vimrc to activate the new types:

let g:tlist_javascript_settings = 'javascript;s:string;a:array;o:object;f:function'

All-in-all, the new regex lines aren't perfect -- they'll definitely need some tweaking to avoid a lot of false positives, and it might be nice to separate out constants and such. But now, at least, I have the ability to do that :).

Edit: Added instructions on how to activate types without editing the plugin, and vastly improved the main ctags function regex to avoid some false-positives.

Edit 2: Added more array and object definitions to the ctags regex.

21
ответ дан 1 December 2019 в 09:13
поделиться

Я не особо использовал javascript или taglist, но просматривая : help taglist-extend , похоже, ваши определения (перечисленные выше) переименовывают вывод javascript в js, поэтому вам, вероятно, понадобится что-то вроде (в вашем vimrc):

let tlist_js_settings = 'js;f:function;m:method'

Предполагается, что ctags 'kind' равен 'f' для функции и 'm' для метод. Взгляните на свой файл тегов и посмотрите, как выглядит столбец «вид». В качестве примера, мой файл тегов кода C включает следующую строку:

ADC_CR1_AWDCH_0 .\LibraryModules\CMSIS\Headers\stm32f10x.h  2871;"  d

Это #define символа ADC_CR1_AWDCH_0 , который находится в указанном файле в строке 2871. 'd' является типом ctags для определенного имени. Надеюсь, это даст вам достаточно, чтобы начать работу.

Кстати, я не уверен, правильно ли будет работать переопределение, поэтому, возможно, стоит назвать ваш файл myfile.mjs и изменить langmap на js: .mjs , пока он не заработает должным образом. Тогда, по крайней мере, вы узнаете, связаны ли ваши проблемы с неправильной идентификацией файлов или фактическим анализом.

1
ответ дан 1 December 2019 в 09:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: