nickserv / nickserv/dotfiles

Emacs bankruptcy

Open
#54 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

emacs
Dominant language
Lua
Stars
6
Forks
0
PR merge metrics
No merged PRs in 30d

Description

[!WARNING]
Generated with Gemini 3.5 Flash Extended and needs manual review

Core Environment & Base Variables
  • Native use-package Initialization
  • Status: Drop third-party installation bootstrap code.
  • Modern Replacement: use-package is built-in to Emacs 29.4 core. Enable it cleanly without requiring manual installation paths.
(setq use-package-always-defer t
      use-package-always-ensure t)

  • UI Element Mitigation
  • Status: Retain frame-level overrides but streamline execution.
  • Modern Replacement: Inject rules into default-frame-alist before frame generation to stop interface redraw flicker on macOS.
(push '(tool-bar-lines . 0) default-frame-alist)
(push '(scroll-bar-lines . 0) default-frame-alist)

  • Process Termination Query Advice
  • Status: Drop the heavy save-buffers-kill-emacs around-advice hook.
  • Modern Replacement: Set the native variable directly to bypass the active processes warning prompt.
(setq confirm-kill-processes nil)

  • Automated Package Upgrades
  • Status: Replace auto-package-update (MELPA dependent).
  • Modern Replacement: Use the native batch compilation function introduced in recent Emacs versions.
(package-upgrade-all)

Completion & Minibuffer Stack
  • Minibuffer Framework Migration
  • Status: Replace ivy, counsel, swiper, and smex completely.
  • Modern Replacement: Use Vertico (UI), Marginalia (metadata annotations), and Orderless (filtering style). All are highly performant, drop-in components available directly on GNU ELPA that respect native Emacs completion tables without abstraction layers.
(use-package vertico :init (vertico-mode 1))
(use-package orderless :custom (completion-styles '(orderless basic)))
(use-package marginalia :init (marginalia-mode 1))

  • Interactive Commands & Workspace Search

  • Status: Replace counsel-projectile and custom search shortcuts.

  • Modern Replacement: Use Consult (GNU ELPA). It provides structural search, buffer switching, and asynchronous ripgrep integrations natively compatible with standard minibuffer UI layers.

  • In-Buffer Auto-Completion Engine

  • Status: Replace company (heavyweight backend architecture).

  • Modern Replacement: Use Corfu (GNU ELPA). It delivers a highly optimized, child-frame completion popup targeting the standard completion-at-point-functions (Capf) mechanism.

Project & Code Navigation
  • Project Management Core
  • Status: Replace projectile and counsel-projectile.
  • Modern Replacement: Use the built-in project.el layer. It extracts project roots automatically via VCS hooks and offers native file hunting, grepping, and compilation workflows (C-x p f, C-x p g, C-x p c).
(setq project-vc-extra-root-markers '("package.json" "index.html" "Gemfile"))

Structural Editing & Language Modes
  • Syntax Architecture & Parsing
  • Status: Replace legacy regular-expression-based major modes (rjsx-mode, yaml-mode) and abandoned tools (tern, js-comint).
  • Modern Replacement: Emacs 29.4 includes native concrete syntax tree parsing via Tree-sitter. Map file definitions to built-in *-ts-mode variants for high-performance structural font-locking.
(setq major-mode-remap-alist
      '((js-mode . js-ts-mode)
        (json-mode . json-ts-mode)
        (yaml-mode . yaml-ts-mode)))

  • Language Server Client (LSP)
  • Status: Replace lsp-mode.
  • Modern Replacement: Use eglot, the built-in Emacs LSP client. It operates with low resource overhead, links with standard diagnostics, and requires zero initial setup outside attaching to target mode hooks.
(use-package eglot
  :ensure nil
  :hook ((js-ts-mode tsx-ts-mode) . eglot-ensure))

  • Asynchronous Buffer Formatting

  • Status: Replace prettier-js and add-node-modules-path hooks.

  • Modern Replacement: Use Apheleia (NonGNU ELPA). It runs formatters asynchronously on save, seamlessly finding local project packages (e.g., Prettier, Biome) without dropping cursor layout or freezing the main thread.

  • Syntax Diagnostics Checker

  • Status: Evaluate replacing flycheck, flycheck-package, and flycheck-pos-tip.

  • Modern Replacement: Use Flymake (built-in). Modern Flymake handles language server errors dynamically through eglot without third-party extension overhead.

  • Delimiter Management

  • Status: Replace smartparens (complex engine with stability state issues).

  • Modern Replacement: Use the native engine for instant structural bracket balancing.

(electric-pair-mode 1)

  • Undo Management & Visualization
  • Status: Replace undo-tree (prone to state engine corruption crashes).
  • Modern Replacement: Rely on the improved native linear undo/redo system (undo-only and undo-redo commands), paired with Vundo (NonGNU ELPA) whenever visual structural ring navigation is explicitly needed.
Custom Workflow Preservation
  • Shell Dependency Tooling Wrappers

  • Status: Re-implement custom interactive utilities (cdnm-list, cdnm-update).

  • Action: Retain identical logic, but re-bind using the standardized keymap-global-set function introduced in modern Emacs configurations rather than legacy macro constructs.

  • Org-Mode Workspace Ecosystem

  • Status: Retain capture templates and file rules (org, org-capture).

  • Action: Isolate variables to target dynamic paths cleanly without assuming execution occurs inside a hardcoded ~/.emacs.d/ hierarchy.

  • Environment Path Integration

  • Status: Retain exec-path-from-shell (NonGNU ELPA).

  • Action: Isolate strictly to GUI frames on macOS (ns window system targets) to keep environment variables synchronized across terminal environments.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No configuration files or tests are named. Start by locating the Emacs configuration and inventorying the listed packages and custom commands; done means the proposed migrations are applied while preserving the shell utilities, Org workspace behavior, and macOS environment integration.

Written by the indexing model from the issue text.

Assessment

Tech stack
emacs, emacs-lisp, macos
Domain
desktop, tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.