UP | HOME

Gnu global patches

Table of Contents

Global

I really like global, it is a tag generator (just like ctags), but better at least from my point of view. Pretty much, it does the same job as any other tag generator but I feel it much more ergonomic and complete, it includes a cscope-like (although I should say clone/fork!) tool called gtags-cscope, a Emacs package and a CLI tool to query the tag files for symbols, definitions and more.

For me, at least, it has been helpful, and an improvement in my workflow, I use less tools, it has integration with Emacs and is a completely independent, I do not need Emacs or any editor. Another plus is that it can be easily compiled and ported to different OS and Architectures, which is quite helpful when I want to just start developing in other OS, quite Handy!

LSP

I tried different LSPs, but I just do not like them, I felt them clunky, over-engineered and cumbersome. I tested 5 (to say at least) for different languages, and all of them have different setups, which is understandable since are different tools, however, all of them relied on the same core technologies: pipes, socket, network sockets, a common protocol, and most of the cases a compiler or interpreter for error handling, syntactical and semantic analysis.

Well, I know that this "LSPs" have another purpose, perhaps the main purpose of their existence, which is being used as servers (just like in its name) for a "cloud" experience of a partial or total development environment , i.e. a complete remote editor or just some amenities for local running editors. This is not something that hypes me up, or something that is interesting to me, I like editing on my own machine, or editing in a VM with a easily to compile tool.

Patches

Fix processing of $EDITOR

editor-options.patch: for version 6.6.12 (also tested in 6.6.9), it should work on previous versions, the source code of gtags-cscope has not been modify in a while.

gtags-cscope normally fails to find the $EDITOR when this variable has options or arguments, if this patch is applied it will be able to correctly process the arguments and options.

Notice, however, that $EDITOR usually should not have options (I thought it was normal for it to have options), and thus it is normal and better for standard conformance to not process this options. So, you can just make a bash script if you just want to have the behavior of the patch without applying the patch [1].

If you read [1] you can infer that… I made a patch for something that was not a bug, and for something that was already the intended behavior, also, I did not think about solving it through bash. Sounds like a bitter ending, but it was quite insightful, I learned that I did not know the definition of $EDITOR, therefore I had to search the definition of $EDITOR and I had to start with the easiest path which was bash. I learned CVS, and I hate it! but that is another story.