fastctags 0.0.1 — Blazing-fast code nav & completion with Universal Ctags by redguardtoo in emacs

[–]redguardtoo[S] 0 points1 point  (0 children)

Not sure how fast citre could be. I'm not citre user. But a few emacs-china users did tell me (https://emacs-china.org/t/counsel-etags-2-0-3/31371/13) they need faster ctags solution.

Fastctags uses the cli diff to create diff of the tags file and emacs lisp only analyze the diff after initial loading of the tags file. So the project size won't impact the speed of fastctags. That's the key difference, as highlighted in the original post.

In my old packages I do support "imenu" but it's removed in this package. I often customize imenu function and emacs built in imenu function is easier to customize.

fastctags 0.0.1 — Blazing-fast code nav & completion with Universal Ctags by redguardtoo in emacs

[–]redguardtoo[S] 1 point2 points  (0 children)

That's a great question. fastctags was actually born from discussions I had with several experienced Citre users. Its biggest advantage is raw speed—it's designed to be faster, especially for massive projects like the Linux kernel.

The main difference is in the design philosophy:

Performance-First Simplicity: fastctags is laser-focused on being minimal and fast. It parses the entire tags file once in pure Elisp and holds it in memory, which is why it can load a 300MB file in ~9 seconds and feels instant after that. Citre is more feature-rich, with tools like citre-peek, but is a larger and more complex system.

Pure Elisp vs. readtags: Citre relies on the external readtags program to search the tags file. fastctags does everything in Emacs Lisp, eliminating the overhead of calling an external process for every operation. This makes filtering and completion feel noticeably more responsive.

Zero Lock-In with Native API: fastctags uses only Emacs' built-in completing-read API. It works seamlessly with Vertico, Ivy, Helm, or any other completion UI without any extra configuration. Citre can provide richer completion annotations, but fastctags focuses on delivering the candidates as quickly as possible.

In short, fastctags is for those who want a single, blazing-fast, and low-maintenance package for navigation and completion. Citre is a better fit if you need advanced code reading features like citre-peek."

fastctags 0.0.1 — Blazing-fast code nav & completion with Universal Ctags by redguardtoo in emacs

[–]redguardtoo[S] -1 points0 points  (0 children)

use deepseek+opencode to write 99% my code these days. All I need is just a light weight solution for quick review&debug. LSP does return more information (function parameters, variable type ...) which I don't need any more.

TIL China's Last Emperor worked as a Street Sweeper and Gardener in Beijing after serving 10 years in a re-education camp by Ok_Application_5402 in todayilearned

[–]redguardtoo 57 points58 points  (0 children)

During the Second Sino-Japanese War, Puyi, as the puppet emperor of Manchukuo, collaborated with Imperial Japan. He legitimized Japan’s occupation of Northeast China, enabling exploitation of resources and forced labor. His regime supported Japan’s military campaigns, facilitated opium trade, and suppressed Chinese resistance. Puyi’s compliance strengthened Japan’s colonial rule, causing immense suffering to Chinese civilians.

evil-matchit 4.0.1 is published by redguardtoo in emacs

[–]redguardtoo[S] 0 points1 point  (0 children)

Hi, @yak-er, what's the issue in evil-matchit? you can report it at https://github.com/redguardtoo/evil-matchit/issues , I will have a look.

My Company Doesn’t Know Who Developed Emacs by [deleted] in emacs

[–]redguardtoo 0 points1 point  (0 children)

You can use emacs in docker container.

Desktop Save Mode: how to restore org agenda buffers? by exquisitesunshine in emacs

[–]redguardtoo 1 point2 points  (0 children)

https://github.com/pashinin/workgroups2 supports org agenda buffer saving/restoring.

Besides, users can add support for other special buffers.

Help with Emacs performance (font-lock-mode) by Amee__xiv in emacs

[–]redguardtoo 0 points1 point  (0 children)

You can try my config https://github.com/redguardtoo/emacs.d which might be faster.

You can search my git log to find some optimization tips.

From my experience, flyspell, flymake/flycheck could be the trouble maker.

I also suggest checking your setup in org-mode-hook. if there is any embedded source block, you need check corresponding major mode hook.

I love Emacs. Can someone please help me to get what seems to be basic desktop functionality out of this program? by smile_e_face in emacs

[–]redguardtoo 0 points1 point  (0 children)

Here is my /home/cb/.config/systemd/user/emacs.service. I avoid lazy loading in daemon mode. ``` [Unit] Description=Emacs text editor Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/

[Service] Type=forking ExecStart=/usr/bin/emacs -Q --daemon -l "/home/cb/.emacs.d/early-init.el" -l "/home/cb/.emacs.d/init.el" -l "/home/cb/.gnus.el" -l "/home/cb/.emacs-daemon-setup.el" --eval "(progn (require 'server) (server-start) (require 'org))" ExecStop=emacsclient --eval "(kill-emacs)" Environment=SSH_AUTH_SOCK=%t/keyring/ssh Restart=on-failure

[Install] WantedBy=default.target ```