{ ... }: { programs.emacs = { enable = true; # Optionally provide extra packages not in the configuration file. extraPackages = epkgs: with epkgs; [ # === SEARCH AND FILE UTILITIES === ag # Silver searcher integration for fast text search # === WEB AND SERVER CONFIGURATION === apache-mode # Syntax highlighting for Apache config files nginx-mode # Syntax highlighting for Nginx config files # === HARDWARE AND EMBEDDED DEVELOPMENT === arduino-mode # Arduino sketch development support # === DOCUMENT PREPARATION === auctex # Comprehensive LaTeX editing environment pandoc-mode # Pandoc document converter integration # === PROGRAMMING LANGUAGE SUPPORT === basic-mode # BASIC programming language support bison-mode # Bison parser generator syntax cmake-mode # CMake build system configuration coffee-mode # CoffeeScript programming language csharp-mode # C# programming language groovy-mode # Groovy/Jenkins pipeline scripting haskell-mode # Haskell functional programming js2-mode # Enhanced JavaScript editing mode lua-mode # Lua scripting language php-mode # PHP web development python-mode # Python programming language scala-mode # Scala programming language # === MARKUP AND DATA FORMATS === csv-mode # Comma-separated values file editing dockerfile-mode # Docker container definition files jinja2-mode # Jinja2 template engine syntax markdown-mode # Markdown markup language nix-mode # Nix expression language (NixOS configs) protobuf-mode # Protocol Buffers schema definitions qml-mode # Qt QML user interface markup yaml-mode # YAML configuration files gnuplot-mode # Gnuplot script editing and plotting integration # === TEXT COMPLETION AND PRODUCTIVITY === company # Text completion framework smex # Enhanced M-x command with history # === USER INTERFACE ENHANCEMENTS === diminish # Hide minor modes from the mode line smooth-scrolling # Smoother scrolling experience rainbow-delimiters # Color-code nested parentheses/brackets # === ENVIRONMENT AND PROJECT MANAGEMENT === direnv # Environment variable management per directory projectile # Project interaction and navigation library # === LANGUAGE SERVER PROTOCOL (LSP) === # Modern language support with intelligent features eglot # Built-in LSP client (simpler alternative to lsp-mode) lsp-mode # Comprehensive Language Server Protocol client lsp-java # Java language server integration lsp-metals # Scala language server (Metals) integration eglot-java # Java support for eglot LSP client sbt-mode # Scala Build Tool integration dap-mode # Debug Adapter Protocol for debugging support # === SYNTAX CHECKING === flycheck # On-the-fly syntax checking framework # === VERSION CONTROL === git-link # Generate links to Git repository web interfaces magit # Comprehensive Git porcelain for Emacs # === TEXT EDITING ENHANCEMENTS === goto-last-change # Jump to the location of last edit iedit # Edit multiple occurrences of text simultaneously bm # Visual bookmarks for quick navigation # === CODE FORMATTING AND CLEANUP === web-beautify # Format and beautify web code (HTML/CSS/JS) whitespace-cleanup-mode # Automatically clean up whitespace on save # === PARENTHESES AND STRUCTURE EDITING === paredit # Balanced parentheses editing for Lisp-like languages smartparens # Smart handling of pairs (parentheses, quotes, etc.) # === SNIPPETS AND TEMPLATES === yasnippet # Template system for inserting code snippets quelpa-use-package # Package management for packages not in MELPA # === VISUAL THEMES === grandshell-theme # Dark theme with good contrast leuven-theme # Light theme designed for readability # === TREE-SITTER GRAMMARS === # Modern syntax highlighting and parsing using tree-sitter treesit-grammars.with-all-grammars # All available tree-sitter language grammars # === TREE-SITTER BASED MODES === # These modes use tree-sitter for better performance and accuracy awk-ts-mode # AWK script editing with tree-sitter dart-mode # Dart programming (Flutter development) graphql-ts-mode # GraphQL query language with tree-sitter jq-ts-mode # jq JSON processor with tree-sitter markdown-ts-mode # Markdown with tree-sitter parsing mermaid-ts-mode # Mermaid diagram syntax with tree-sitter scala-ts-mode # Scala with tree-sitter (alternative to scala-mode) swift-ts-mode # Swift programming with tree-sitter #"dired+" #dired-copy-paste #frame-cmds #frame-fns #sourcepair #zoom-frm ]; extraConfig = '' (setq standard-indent 2) (load-theme 'grandshell t) ''; }; }