[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Problem on generating GRTAGS for vim scripts
From: |
John Rama |
Subject: |
Re: Problem on generating GRTAGS for vim scripts |
Date: |
Mon, 7 Jun 2021 12:08:20 -0400 |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 |
Thanks, Shigio-san
John
On 2021/06/04 21:52, Shigio YAMAGUCHI wrote:
>> In other words, how pygments-parser get the symbol from pygments...
>
> pygments-parser calls pygments.lexers module.
> Please see the source code of the parser.
>
> [installed]
> /usr/local/share/gtags/script/pygments_parser.py
> [in the source package]
> plugin-factory/pygments_parser.py.in
>
> Regards,
> Shigio
>
> On Fri, Jun 4, 2021 at 11:43 PM John Rama <john.rama01@gmail.com> wrote:
>>
>> Thanks Shigio-san for clarifying the problem in detail.
>>
>>> I think the only way to fix it fundamentally is to rewrite one of the
>>> parsers.
>> I agree.
>>
>> I personally think this is the problem on Pygments. So, would like to try to
>> dug into it.
>>
>> Is there any way to make pygments generate the symbol ?
>>
>> Following command generated highlighted text.
>> $python3 -m pygments plugin/lightline.vim
>>
>> I am wondering if there is any option to generate symbol only...
>> In other words, how pygments-parser get the symbol from pygments...
>>
>> John
>>
>> On 2021/06/03 20:36, Shigio YAMAGUCHI wrote:
>>> Hello,
>>>
>>>> Is this expected behavior ?
>>>
>>> No, it isn't. It is a bug.
>>>
>>> 'pygments-parser.la' works by combining two parsers: Pygments and Ctags.
>>> It seems that the parsers recognize symbols differently.
>>> Ctags picks up symbols with namespace but Pygments do it without namespace.
>>>
>>> Ctags lightline#highlight
>>> Pygments highlight
>>>
>>>> Is there any workaround on this ?
>>>
>>> You can pick up both symbols using a regular expression 'highlight$'.
>>> ('$' matches the end of the symbol.)
>>>
>>> $ global -x 'highlight$'
>>> lightline#highlight 263 autoload/lightline.vim function!
>>> lightline#highlight(...) abort
>>> ...
>>>
>>> $ global -xrs 'highlight$'
>>> highlight 54 autoload/lightline.vim autocmd
>>> SessionLoadPost * call lightline#highlight()
>>> highlight 56 autoload/lightline.vim \ | call
>>> lightline#update() | call lightline#highlight() | endif
>>> ...
>>>
>>> 'global -xr' does not work, since global cannot understand that
>>> 'lightline#highlight' and 'highlight' are in a reference relationship.
>>> I think the only way to fix it fundamentally is to rewrite one of the
>>> parsers.
>>>
>>> Regards,
>>> Shigio
>>>
>>> 2021年6月4日(金) 5:35 John Rama <john.rama01@gmail.com>:
>>>
>>>>
>>>> Hi,
>>>>
>>>> I keep using global/gtags for reading c/python/javascripts and it
>>>> works greatly. Thank you for that !!
>>>>
>>>> But when trying to create tags files for vim script,
>>>> GTAGS files are generated correctly, but GRTAGS files are not
>>>> complete.
>>>>
>>>> - Environement
>>>> $gtags --version
>>>> gtags (GNU GLOBAL) 6.6
>>>> $python3 -m pip list |grep Pygments
>>>> Pygments 2.9.0
>>>>
>>>> - How to duplicate the problem
>>>> $git clone https://github.com/itchyny/lightline.vim
>>>> $gtags --gtagslabel=pygments -v
>>>>
>>>> - Problem
>>>> For example, symbol for lightline#highlight() is generated in GTAGS
>>>> file, but it's not in GRTAGS.
>>>> So, it looks lightline#highlight symbol becomes "highlight".
>>>>
>>>> $gtags -d GTAGS |grep high
>>>> lightline#highlight 42 @n 263 function! @n(...) abort
>>>> s:suite 51 @n 1 let @n = themis#suite('highlight')
>>>> suite.highlight 51 @n 21 function! s:@n()
>>>>
>>>> $gtags -d GRTAGS |grep high
>>>> highlight 51 @n 21,19,17,16
>>>> highlight 42 @n 54,2,146-1,21-1,38,7,40-1,121-1
>>>> highlight 3 @n 22,2
>>>>
>>>> - Questions
>>>> Is this expected behavior ?
>>>> Is there any workaround on this ?
>>>>
>>>> Thanks for your help.
>>>> John
>>>>
>>>>
>>>
>>>
>>> --
>>> Shigio YAMAGUCHI <shigio@gnu.org>
>>> PGP fingerprint:
>>> 26F6 31B4 3D62 4A92 7E6F 1C33 969C 3BE3 89DD A6EB
>>>
>>
>
>