id = "emacs" name = "GNU Emacs" homepage = "https://www.gnu.org/software/emacs/" description = "An extensible, customizable, free/libre text editor — and more." icon = "SimpleIcons:gnuemacs" executables = ["emacs", "emacsclient"] [dotfiles] # Emacs manual, "The Init File": "Traditionally, file ~/.emacs is used as the # init file, although Emacs also looks at ~/.emacs.el, ~/.emacs.d/init.el, # ~/.config/emacs/init.el, or other locations." # "The Early Init File": "Such customizations can be put in the early init # file, ~/.config/emacs/early-init.el or ~/.emacs.d/early-init.el." paths = [ "~/.emacs", "~/.emacs.el", "~/.emacs.d/init.el", "~/.emacs.d/early-init.el", "~/.config/emacs/init.el", "~/.config/emacs/early-init.el", ] # What Emacs and its package managers write beside the init file: package.el's # package-user-dir (elpa), the native-compilation cache (eln-cache), the # auto-save file list, transient's saved values, url.el's cookie and history # store, and straight.el's package checkouts. exclude = [ "~/.emacs.d/elpa/", "~/.emacs.d/eln-cache/", "~/.emacs.d/auto-save-list/", "~/.emacs.d/transient/", "~/.emacs.d/url/", "~/.emacs.d/straight/", "~/.config/emacs/elpa/", "~/.config/emacs/eln-cache/", "~/.config/emacs/auto-save-list/", ] # The auth-source manual ("Help for users") describes ~/.authinfo and # ~/.authinfo.gpg as the netrc-style files auth-source reads, holding the # passwords and tokens Gnus, ERC, EWW and package.el send. ~/.netrc is on # auth-source's default list too, but it is not Emacs' own file, so it is not # claimed here. secret = ["~/.authinfo", "~/.authinfo.gpg"] # No side_effect = false: a running Emacs writes M-x customize settings back # into the init file, so a consumer must not overwrite it under a live session. # No machine_lines: the init file is Emacs Lisp, and the machine-local part is # a path inside an expression — (setq exec-path …), a font name, a Homebrew # prefix — which prefix matching cannot pick out of the line around it. An # entry with correct paths and no machine_lines is the honest one here. [commands] format = 1 label = "Open in Emacs" description = "Start Emacs on files or a batch session. Only common startup flags." quality = "ai-draft" base = "fig:emacs" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/emacs.ts" license = "MIT" [[commands.field]] id = "value" label = "Files" type = "path" position = 0 multiple = true path = { kind = "any", role = "input" } sources = ["fig"] [[commands.field]] id = "no_init_file" label = "Skip init file" type = "boolean" option = ["--no-init-file", "-q"] sources = ["fig"] [[commands.field]] id = "quick" label = "Quick start" type = "boolean" option = ["--quick", "-Q"] sources = ["fig"] [[commands.field]] id = "debug_init" label = "Debug init file" type = "boolean" option = ["--debug-init"] sources = ["fig"] [[commands.field]] id = "no_splash" label = "No splash screen" type = "boolean" option = ["--no-splash"] sources = ["fig"] [[commands.field]] id = "batch" label = "Batch mode" type = "boolean" option = ["--batch"] sources = ["fig"] [[commands.field]] id = "daemon" label = "Start daemon" type = "boolean" option = ["--daemon"] sources = ["fig"] [[commands.task]] id = "edit" label = "Open files" fields = ["value", "no_init_file", "quick"] required = ["value"] [[commands.task]] id = "debug" label = "Debug init file" set = { debug_init = [true] } fields = ["debug_init"] [[commands.group]] id = "basic" label = "Basic" fields = ["value", "no_init_file", "quick", "debug_init"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["batch", "daemon", "no_splash"]