Skip to content

Project ctags

Mark Nauwelaerts requested to merge mnauwelaerts/kate:project-ctags into master

Even with the advent of LSP protocol and client, ctags is still useful and a first-class tool (as also mentioned some time ago on kwrite-devel, e.g. for examing 3rd party codebase where a build/LSP setup is not desired or not practical due to additional dependencies etc). Such ctags support is provided by the ctags plugin and also very conveniently by the projects plugin (e.g. completion, lookup). However, that has recently been disabled by default (for sensible reasons, e.g. overflowing tmpfs /tmp). So it would now be required to explicitly enable ctags by specifying so in .kateproject. When dealing with lots of small repos, that can become a bit unwieldy and again require a lot of manual intervention.

The included patches/commits aim to restore some convenience as follows;

  • automatically deduce "boilerplate" .kateproject parts (while reading it) in the same way as done by auto-generated project, so only needed parts need to be entered, e.g. ctags enable/disable, build info, lsp overrides, or whatever else may be configured per-project (now or future)
  • enable/disable ctag index generation on project-level; disabled by default as it is now (for safety), but can be enabled (to how it was before) if so desired. If the .kateproject file explicitly has an index member, then that entry wins and overrides in any case (otherwise use the plugin setting). Moreover, also allow to specify the directory location on project plugin level (e.g. on non-tmpfs with adequate space)
  • last but not least, if .kateproject explicitly specifies indexfile member, then use that filename for index generation, which is then a a non-temporary file that can be re-used next time around. When dealing with large/huge repos, that avoids having to regenerate each time again

Merge request reports