Skip to content

[Question] How to have separate tags files? #178

Open
@Schievel1

Description

@Schievel1

First my use case:
I have ARM embedded projects that have

  • some code in the header files and stdlib that comes with the ARM compiler
  • some code in a library my company develops for our embedded use case
  • some code in another library my company develops for our embedded use case
  • some code in my project

I would like to use ctags for the tags files.

I usually am in the project's code, but I want code completion and looking up definitions and such with candidates, that are in the libraries.
I figured when I am in a project and I do M-x citre-create-tags-file I can just add the paths to the libraries sources in that window that pops up and it creates a tags file for the project with all the libraries tags in it. This works, but I get a tags file that is >40MB. And I have many projects, so I would have to create tags files for each of them that are >40mb each. So what I would like to have instead is a separate tags file for each project with only the projects tags and one for the libraries. (or one for each library, I don't care about that)
readtags would then look up a tag in the projects tags file and when it can't find it there it would look in the other files.

gtags has the environment variable GTAGSLIBPATH for that. I set it up to point into the libraries sources, create tags files with gtags for them and the rest is on gtags. But how could I set this up for ctags instead? All I could find was some commands to give vim (yes I know, the horror!) several tags files, but not how to do this in emacs. Also it would be best to have it in a set-up-once-and-forget-it style instead of doing it for every project again and again.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions