GithubHelp home page GithubHelp logo

Comments (7)

justinmk avatar justinmk commented on August 19, 2024

You can configure ctags however you like, via the .gutctags in particular. There is no need for numerous plugin options. taglist.vim tries to do far too much, and it doesn't work very well.

from vim-gutentags.

ludovicchabant avatar ludovicchabant commented on August 19, 2024

Thanks for the kind words, and the name was sadly not my idea (follow the Reddit link... but I wish I thought about it!)

Yep, @justinmk is right, unless I'm misunderstanding your problem, you can create a .gutctags at the root of your project and specify what you want (probably using --pascal-kinds options and such... see the ctags documentation).

from vim-gutentags.

dbedrenko avatar dbedrenko commented on August 19, 2024

I did check in ctags -- list-kinds but, of the 41 languages supported by ctags, only 3 (VHDL, Perl, SML) specify a declaration "kind", which could be switched off.

So in the chain of "Ctags -> GutenTags -> CtrlP" I supposed that the most suitable link to implement my proposed feature is GutenTags, because "taglist.vim" did it (and I replaced this plugin with GutenTags). Every IDE I used also didn't show the function declarations in the Code Structure/Navigation panel, so I'm not crazy :P

Maybe there could be a hook once the tags file is generated to sort the tags file, and delete the "duplicate" functions?

from vim-gutentags.

ludovicchabant avatar ludovicchabant commented on August 19, 2024

Mmmh I'm confused, are you using some custom filter with taglist.vim, or does it somehow remove those "duplicates" automatically? I tried disabling Gutentags and installing taglist.vim and I see both entries for each function on a Pascal codebase in the TlistOpen window (and actually I don't know about Pascal but in C++ I definitely want to see both declaration and implementation in the tag list).

from vim-gutentags.

dbedrenko avatar dbedrenko commented on August 19, 2024

Damn, you're right. Sorry about that oversight, I messed up.

But is it still possible to have a hook in place after the tags file has been written to filter and re-process the tags file according to some custom rules (I will manipulate it with regexps and with sorting)? It would make this plugin a lot more extensible.

Something like g:gutentags_custom_commands that points to an executable file and runs wherever the tags file is stored.

I don't know C++, but in Obj Pascal almost all functions have a declaration line exactly like the definition line (rarely, a directive like "overload" is added which is included only in the declaration). So the only time you want to go to the declaration is if you're changing it, which is a rare occurence.

from vim-gutentags.

ludovicchabant avatar ludovicchabant commented on August 19, 2024

I suppose some option to run custom processing would be useful, yeah... you can send a pull request if you're up to it :) Otherwise I'll try writing up something when I get some free time, but this will likely be low priority for me.

from vim-gutentags.

ludovicchabant avatar ludovicchabant commented on August 19, 2024

Well obviously I don't have enough free time these days to implement this kind of feature, especially since I would not use it myself. Anybody's free to send a pull request though :)

from vim-gutentags.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.