From a0b0357466c9dccb07ff7986533e708f28c0afc2 Mon Sep 17 00:00:00 2001 From: Timo Bingmann Date: Mon, 8 Dec 2025 22:38:18 -0800 Subject: [PATCH] home/develop/emacs: add yasnippet snippets and make snippet dirs configurable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit makes two significant changes to the Emacs configuration: 1. Refactors emacs.nix to use proper NixOS module structure: - Converts from simple configuration to a module with options/config - Adds `tb.emacs.extraSnippetDirs` option to allow per-machine snippet directories (defaults to ~/.emacs.d/snippets/) - Moves yasnippet configuration from custom.el to nix-generated elisp, enabling dynamic snippet directory configuration via Nix 2. Adds a comprehensive collection of yasnippet snippets for multiple modes: - C++ mode: 50 snippets for common patterns (class, namespace, operators, copy/move semantics, debug helpers, documentation, threading primitives) - CC mode (shared C/C++): for, switch, main, include guards, etc. - CMake mode: if/else, foreach, function, macro, project boilerplate - LaTeX mode: document structure, beamer frames, figures, lists - Perl mode: package boilerplate, shebang - Python/Shell/Nix/Protobuf/Java/CSS/Dockerfile modes: horizontal rules and common patterns - Text mode: modeline snippets for locale settings The snippets use yasnippet's inheritance system via .yas-parents files, so c++-mode inherits from cc-mode and text-mode, reducing duplication. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- home/develop/emacs.nix | 267 ++++++++++-------- home/develop/emacs/custom.el | 8 - .../emacs/snippets/c++-mode/.yas-parents | 2 + home/develop/emacs/snippets/c++-mode/A | 6 + home/develop/emacs/snippets/c++-mode/acc | 5 + home/develop/emacs/snippets/c++-mode/alloc | 5 + home/develop/emacs/snippets/c++-mode/ator | 5 + home/develop/emacs/snippets/c++-mode/be | 5 + home/develop/emacs/snippets/c++-mode/cerr | 8 + home/develop/emacs/snippets/c++-mode/class | 13 + home/develop/emacs/snippets/c++-mode/cmd | 10 + .../emacs/snippets/c++-mode/constructor | 8 + home/develop/emacs/snippets/c++-mode/copy | 6 + home/develop/emacs/snippets/c++-mode/copymove | 14 + home/develop/emacs/snippets/c++-mode/cout | 8 + home/develop/emacs/snippets/c++-mode/cv | 5 + home/develop/emacs/snippets/c++-mode/d | 5 + home/develop/emacs/snippets/c++-mode/debug | 6 + home/develop/emacs/snippets/c++-mode/debugf | 6 + home/develop/emacs/snippets/c++-mode/doc | 7 + home/develop/emacs/snippets/c++-mode/dog | 12 + home/develop/emacs/snippets/c++-mode/el | 5 + home/develop/emacs/snippets/c++-mode/functor | 14 + home/develop/emacs/snippets/c++-mode/hi | 5 + home/develop/emacs/snippets/c++-mode/i | 6 + home/develop/emacs/snippets/c++-mode/lock | 6 + .../develop/emacs/snippets/c++-mode/mutexlock | 7 + home/develop/emacs/snippets/c++-mode/mysource | 17 ++ home/develop/emacs/snippets/c++-mode/nl | 5 + home/develop/emacs/snippets/c++-mode/noncopy | 10 + .../emacs/snippets/c++-mode/noncopymove | 14 + home/develop/emacs/snippets/c++-mode/ns | 10 + .../emacs/snippets/c++-mode/operator_equal | 5 + .../emacs/snippets/c++-mode/operator_istream | 8 + .../emacs/snippets/c++-mode/operator_less | 8 + .../emacs/snippets/c++-mode/operator_ostream | 8 + home/develop/emacs/snippets/c++-mode/os | 5 + home/develop/emacs/snippets/c++-mode/oso | 6 + home/develop/emacs/snippets/c++-mode/oss | 6 + home/develop/emacs/snippets/c++-mode/pe | 5 + home/develop/emacs/snippets/c++-mode/perl | 8 + home/develop/emacs/snippets/c++-mode/q | 10 + home/develop/emacs/snippets/c++-mode/stdrand | 6 + home/develop/emacs/snippets/c++-mode/stdsleep | 6 + home/develop/emacs/snippets/c++-mode/sv | 5 + home/develop/emacs/snippets/c++-mode/svlit | 5 + .../develop/emacs/snippets/c++-mode/timestamp | 9 + home/develop/emacs/snippets/c++-mode/try | 10 + .../emacs/snippets/c++-mode/using_ator | 5 + home/develop/emacs/snippets/c++-mode/vls | 5 + .../emacs/snippets/c-mode/.yas-parents | 2 + home/develop/emacs/snippets/capnp-mode/hr | 5 + home/develop/emacs/snippets/cc-mode/c | 6 + home/develop/emacs/snippets/cc-mode/cc | 7 + .../emacs/snippets/cc-mode/comment-spacerline | 6 + home/develop/emacs/snippets/cc-mode/for | 8 + home/develop/emacs/snippets/cc-mode/fori | 7 + home/develop/emacs/snippets/cc-mode/guard | 10 + home/develop/emacs/snippets/cc-mode/in | 6 + home/develop/emacs/snippets/cc-mode/inc | 6 + home/develop/emacs/snippets/cc-mode/main | 9 + home/develop/emacs/snippets/cc-mode/packed | 5 + home/develop/emacs/snippets/cc-mode/switch | 11 + .../emacs/snippets/cmake-mode/.yas-parents | 1 + .../cmake-mode/cmake_minimum_required | 5 + .../develop/emacs/snippets/cmake-mode/foreach | 7 + .../emacs/snippets/cmake-mode/function | 7 + home/develop/emacs/snippets/cmake-mode/hr | 6 + home/develop/emacs/snippets/cmake-mode/if | 7 + home/develop/emacs/snippets/cmake-mode/ifelse | 9 + .../develop/emacs/snippets/cmake-mode/include | 5 + home/develop/emacs/snippets/cmake-mode/macro | 7 + .../develop/emacs/snippets/cmake-mode/message | 5 + home/develop/emacs/snippets/cmake-mode/option | 5 + .../develop/emacs/snippets/cmake-mode/project | 5 + home/develop/emacs/snippets/cmake-mode/set | 5 + .../emacs/snippets/cperl-mode/.yas-parents | 1 + .../develop/emacs/snippets/cperl-mode/package | 21 ++ home/develop/emacs/snippets/cperl-mode/perl | 8 + home/develop/emacs/snippets/css-mode/doc | 6 + .../develop/emacs/snippets/dockerfile-mode/hr | 5 + home/develop/emacs/snippets/ess-r-mode/hr | 5 + .../emacs/snippets/java-mode/.yas-parents | 2 + home/develop/emacs/snippets/java-mode/hr | 5 + .../emacs/snippets/latex-mode/.yas-parents | 1 + home/develop/emacs/snippets/latex-mode/begin | 8 + home/develop/emacs/snippets/latex-mode/cols | 12 + .../emacs/snippets/latex-mode/enumerate | 8 + home/develop/emacs/snippets/latex-mode/figure | 9 + home/develop/emacs/snippets/latex-mode/frame | 10 + home/develop/emacs/snippets/latex-mode/ho | 5 + home/develop/emacs/snippets/latex-mode/hr | 6 + home/develop/emacs/snippets/latex-mode/hrr | 6 + home/develop/emacs/snippets/latex-mode/hrx | 9 + home/develop/emacs/snippets/latex-mode/hx | 5 + .../develop/emacs/snippets/latex-mode/itemize | 8 + .../emacs/snippets/latex-mode/modeline-de_DE | 5 + home/develop/emacs/snippets/latex-mode/noex | 5 + .../emacs/snippets/latex-mode/noexternal | 6 + .../emacs/snippets/latex-mode/template | 73 +++++ home/develop/emacs/snippets/nix-mode/hr | 5 + home/develop/emacs/snippets/protobuf-mode/hr | 5 + home/develop/emacs/snippets/python-mode/hr | 5 + .../develop/emacs/snippets/python-mode/python | 5 + home/develop/emacs/snippets/scala-ts-mode/doc | 7 + home/develop/emacs/snippets/sh-mode/bash | 8 + home/develop/emacs/snippets/sh-mode/hr | 5 + home/develop/emacs/snippets/text-mode/ho | 5 + home/develop/emacs/snippets/text-mode/hr | 5 + .../emacs/snippets/text-mode/modeline-de_DE | 5 + .../emacs/snippets/text-mode/modeline-en_US | 5 + 111 files changed, 951 insertions(+), 130 deletions(-) create mode 100644 home/develop/emacs/snippets/c++-mode/.yas-parents create mode 100644 home/develop/emacs/snippets/c++-mode/A create mode 100644 home/develop/emacs/snippets/c++-mode/acc create mode 100644 home/develop/emacs/snippets/c++-mode/alloc create mode 100644 home/develop/emacs/snippets/c++-mode/ator create mode 100644 home/develop/emacs/snippets/c++-mode/be create mode 100644 home/develop/emacs/snippets/c++-mode/cerr create mode 100644 home/develop/emacs/snippets/c++-mode/class create mode 100644 home/develop/emacs/snippets/c++-mode/cmd create mode 100644 home/develop/emacs/snippets/c++-mode/constructor create mode 100644 home/develop/emacs/snippets/c++-mode/copy create mode 100644 home/develop/emacs/snippets/c++-mode/copymove create mode 100644 home/develop/emacs/snippets/c++-mode/cout create mode 100644 home/develop/emacs/snippets/c++-mode/cv create mode 100644 home/develop/emacs/snippets/c++-mode/d create mode 100644 home/develop/emacs/snippets/c++-mode/debug create mode 100644 home/develop/emacs/snippets/c++-mode/debugf create mode 100644 home/develop/emacs/snippets/c++-mode/doc create mode 100644 home/develop/emacs/snippets/c++-mode/dog create mode 100644 home/develop/emacs/snippets/c++-mode/el create mode 100644 home/develop/emacs/snippets/c++-mode/functor create mode 100644 home/develop/emacs/snippets/c++-mode/hi create mode 100644 home/develop/emacs/snippets/c++-mode/i create mode 100644 home/develop/emacs/snippets/c++-mode/lock create mode 100644 home/develop/emacs/snippets/c++-mode/mutexlock create mode 100644 home/develop/emacs/snippets/c++-mode/mysource create mode 100644 home/develop/emacs/snippets/c++-mode/nl create mode 100644 home/develop/emacs/snippets/c++-mode/noncopy create mode 100644 home/develop/emacs/snippets/c++-mode/noncopymove create mode 100644 home/develop/emacs/snippets/c++-mode/ns create mode 100644 home/develop/emacs/snippets/c++-mode/operator_equal create mode 100644 home/develop/emacs/snippets/c++-mode/operator_istream create mode 100644 home/develop/emacs/snippets/c++-mode/operator_less create mode 100644 home/develop/emacs/snippets/c++-mode/operator_ostream create mode 100644 home/develop/emacs/snippets/c++-mode/os create mode 100644 home/develop/emacs/snippets/c++-mode/oso create mode 100644 home/develop/emacs/snippets/c++-mode/oss create mode 100644 home/develop/emacs/snippets/c++-mode/pe create mode 100644 home/develop/emacs/snippets/c++-mode/perl create mode 100644 home/develop/emacs/snippets/c++-mode/q create mode 100644 home/develop/emacs/snippets/c++-mode/stdrand create mode 100644 home/develop/emacs/snippets/c++-mode/stdsleep create mode 100644 home/develop/emacs/snippets/c++-mode/sv create mode 100644 home/develop/emacs/snippets/c++-mode/svlit create mode 100644 home/develop/emacs/snippets/c++-mode/timestamp create mode 100644 home/develop/emacs/snippets/c++-mode/try create mode 100644 home/develop/emacs/snippets/c++-mode/using_ator create mode 100644 home/develop/emacs/snippets/c++-mode/vls create mode 100644 home/develop/emacs/snippets/c-mode/.yas-parents create mode 100644 home/develop/emacs/snippets/capnp-mode/hr create mode 100644 home/develop/emacs/snippets/cc-mode/c create mode 100644 home/develop/emacs/snippets/cc-mode/cc create mode 100644 home/develop/emacs/snippets/cc-mode/comment-spacerline create mode 100644 home/develop/emacs/snippets/cc-mode/for create mode 100644 home/develop/emacs/snippets/cc-mode/fori create mode 100644 home/develop/emacs/snippets/cc-mode/guard create mode 100644 home/develop/emacs/snippets/cc-mode/in create mode 100644 home/develop/emacs/snippets/cc-mode/inc create mode 100644 home/develop/emacs/snippets/cc-mode/main create mode 100644 home/develop/emacs/snippets/cc-mode/packed create mode 100644 home/develop/emacs/snippets/cc-mode/switch create mode 100644 home/develop/emacs/snippets/cmake-mode/.yas-parents create mode 100644 home/develop/emacs/snippets/cmake-mode/cmake_minimum_required create mode 100644 home/develop/emacs/snippets/cmake-mode/foreach create mode 100644 home/develop/emacs/snippets/cmake-mode/function create mode 100644 home/develop/emacs/snippets/cmake-mode/hr create mode 100644 home/develop/emacs/snippets/cmake-mode/if create mode 100644 home/develop/emacs/snippets/cmake-mode/ifelse create mode 100644 home/develop/emacs/snippets/cmake-mode/include create mode 100644 home/develop/emacs/snippets/cmake-mode/macro create mode 100644 home/develop/emacs/snippets/cmake-mode/message create mode 100644 home/develop/emacs/snippets/cmake-mode/option create mode 100644 home/develop/emacs/snippets/cmake-mode/project create mode 100644 home/develop/emacs/snippets/cmake-mode/set create mode 100644 home/develop/emacs/snippets/cperl-mode/.yas-parents create mode 100644 home/develop/emacs/snippets/cperl-mode/package create mode 100644 home/develop/emacs/snippets/cperl-mode/perl create mode 100644 home/develop/emacs/snippets/css-mode/doc create mode 100644 home/develop/emacs/snippets/dockerfile-mode/hr create mode 100644 home/develop/emacs/snippets/ess-r-mode/hr create mode 100644 home/develop/emacs/snippets/java-mode/.yas-parents create mode 100644 home/develop/emacs/snippets/java-mode/hr create mode 100644 home/develop/emacs/snippets/latex-mode/.yas-parents create mode 100644 home/develop/emacs/snippets/latex-mode/begin create mode 100644 home/develop/emacs/snippets/latex-mode/cols create mode 100644 home/develop/emacs/snippets/latex-mode/enumerate create mode 100644 home/develop/emacs/snippets/latex-mode/figure create mode 100644 home/develop/emacs/snippets/latex-mode/frame create mode 100644 home/develop/emacs/snippets/latex-mode/ho create mode 100644 home/develop/emacs/snippets/latex-mode/hr create mode 100644 home/develop/emacs/snippets/latex-mode/hrr create mode 100644 home/develop/emacs/snippets/latex-mode/hrx create mode 100644 home/develop/emacs/snippets/latex-mode/hx create mode 100644 home/develop/emacs/snippets/latex-mode/itemize create mode 100644 home/develop/emacs/snippets/latex-mode/modeline-de_DE create mode 100644 home/develop/emacs/snippets/latex-mode/noex create mode 100644 home/develop/emacs/snippets/latex-mode/noexternal create mode 100644 home/develop/emacs/snippets/latex-mode/template create mode 100644 home/develop/emacs/snippets/nix-mode/hr create mode 100644 home/develop/emacs/snippets/protobuf-mode/hr create mode 100644 home/develop/emacs/snippets/python-mode/hr create mode 100644 home/develop/emacs/snippets/python-mode/python create mode 100644 home/develop/emacs/snippets/scala-ts-mode/doc create mode 100644 home/develop/emacs/snippets/sh-mode/bash create mode 100644 home/develop/emacs/snippets/sh-mode/hr create mode 100644 home/develop/emacs/snippets/text-mode/ho create mode 100644 home/develop/emacs/snippets/text-mode/hr create mode 100644 home/develop/emacs/snippets/text-mode/modeline-de_DE create mode 100644 home/develop/emacs/snippets/text-mode/modeline-en_US diff --git a/home/develop/emacs.nix b/home/develop/emacs.nix index 01b8bfa..ed7f267 100644 --- a/home/develop/emacs.nix +++ b/home/develop/emacs.nix @@ -1,126 +1,149 @@ -{ pkgs, ... }: +{ config, pkgs, lib, ... }: +let + snippetsPath = ./emacs/snippets; + extraSnippetDirs = config.tb.emacs.extraSnippetDirs; + allSnippetDirs = [ "${snippetsPath}" ] ++ extraSnippetDirs; + snippetDirsLisp = lib.concatMapStringsSep " " (d: ''"${d}"'') allSnippetDirs; +in { - programs.emacs = { - enable = true; - - # Optionally provide extra packages not in the configuration file. - extraPackages = epkgs: with epkgs; [ - - # === 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 - go-mode # Go programming language - 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 - - # === SEARCH AND FILE UTILITIES === - rg # Ripgrep searcher integration for fast text search - diredfl # Enhanced font-locking for dired mode - dired-ranger # File operations with copy/move/paste semantics - - # === 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) - ethan-wspace # 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 - ]; - - extraConfig = builtins.readFile ./emacs/custom.el; + options.tb.emacs.extraSnippetDirs = lib.mkOption { + type = lib.types.listOf lib.types.str; + default = ["~/.emacs.d/snippets/"]; + description = "Additional snippet directories for yasnippet"; }; - # System packages required by various emacs packages - home.packages = with pkgs; [ - # Search and file utilities - ripgrep # Required for rg package - ]; + config = { + programs.emacs = { + enable = true; + + # Optionally provide extra packages not in the configuration file. + extraPackages = epkgs: with epkgs; [ + + # === 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 + go-mode # Go programming language + 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 + + # === SEARCH AND FILE UTILITIES === + rg # Ripgrep searcher integration for fast text search + diredfl # Enhanced font-locking for dired mode + dired-ranger # File operations with copy/move/paste semantics + + # === 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) + ethan-wspace # 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 + ]; + + extraConfig = builtins.readFile ./emacs/custom.el + '' + + ;; Yasnippet configuration (generated by nix) + (use-package yasnippet + :init + (setq yas-snippet-dirs '(${snippetDirsLisp})) + :config + (yas-reload-all) + (yas-global-mode 1)) + ''; + }; + + # System packages required by various emacs packages + home.packages = with pkgs; [ + # Search and file utilities + ripgrep # Required for rg package + ]; + }; } diff --git a/home/develop/emacs/custom.el b/home/develop/emacs/custom.el index b85e139..680f41e 100644 --- a/home/develop/emacs/custom.el +++ b/home/develop/emacs/custom.el @@ -386,14 +386,6 @@ frame if FRAME is nil, and to 1 if AMT is nil." try-expand-list try-expand-line))) -;; Yet another snippet extension for Emacs. -(use-package yasnippet - :init - (setq yas-snippet-dirs '("~/.emacs.d/snippets/")) - :config - (yas-reload-all) - (yas-global-mode 1)) - ;; Clean up whitespace (use-package ethan-wspace :ensure t diff --git a/home/develop/emacs/snippets/c++-mode/.yas-parents b/home/develop/emacs/snippets/c++-mode/.yas-parents new file mode 100644 index 0000000..4ad42bb --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/.yas-parents @@ -0,0 +1,2 @@ +cc-mode +text-mode \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/A b/home/develop/emacs/snippets/c++-mode/A new file mode 100644 index 0000000..4756123 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/A @@ -0,0 +1,6 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: A +# key: A +# binding: direct-keybinding +# -- +ASSERT_EQ($0) \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/acc b/home/develop/emacs/snippets/c++-mode/acc new file mode 100644 index 0000000..251ff05 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/acc @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: ac +# key: ac +# -- +* @param[in] alloc Memory allocator to use. \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/alloc b/home/develop/emacs/snippets/c++-mode/alloc new file mode 100644 index 0000000..5db8321 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/alloc @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: alloc +# key: alloc +# -- +const xplat::polymorphic_allocator<> alloc; \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/ator b/home/develop/emacs/snippets/c++-mode/ator new file mode 100644 index 0000000..cf9120b --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/ator @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: ator +# key: ator +# -- +const xplat::polymorphic_allocator<> alloc; \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/be b/home/develop/emacs/snippets/c++-mode/be new file mode 100644 index 0000000..39c5992 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/be @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: be +# key: be +# -- +$1.begin(), $1.end() \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/cerr b/home/develop/emacs/snippets/c++-mode/cerr new file mode 100644 index 0000000..6824dd0 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/cerr @@ -0,0 +1,8 @@ +# -*- mode: snippet -*- +# contributor: York Zhao +# name: cerr +# key: cerr +# -- +`(progn (save-excursion) (goto-char (point-min)) (unless (re-search-forward +"^using\\s-+namespace std;" nil 'no-errer) "std::")) +`cerr << $0 << '\n'; \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/class b/home/develop/emacs/snippets/c++-mode/class new file mode 100644 index 0000000..e0a1139 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/class @@ -0,0 +1,13 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: class +# key: class +# binding: direct-keybinding +# -- +class ${1:Class} +{ +public: + $1() + : { } + +private: +}; \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/cmd b/home/develop/emacs/snippets/c++-mode/cmd new file mode 100644 index 0000000..ba9db6e --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/cmd @@ -0,0 +1,10 @@ +# -*- mode: snippet -*- +# name: cmd +# key: cmd +# -- +static void ${1:cmd}(base::Cmd& cmd) +{ + $0 +} + +CMD($1, "$1"); \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/constructor b/home/develop/emacs/snippets/c++-mode/constructor new file mode 100644 index 0000000..95ed499 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/constructor @@ -0,0 +1,8 @@ +# -*- mode: snippet -*- +# name: constructor +# key: ct +# -- +${1:Class}::$1(${2:args}) ${3: : ${4:init}} +{ + $0 +} \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/copy b/home/develop/emacs/snippets/c++-mode/copy new file mode 100644 index 0000000..bf1c942 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/copy @@ -0,0 +1,6 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: copy +# key: copy +# binding: direct-keybinding +# -- + * Copyright (C) `(format-time-string "%Y" (current-time))` Timo Bingmann \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/copymove b/home/develop/emacs/snippets/c++-mode/copymove new file mode 100644 index 0000000..c1120fc --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/copymove @@ -0,0 +1,14 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: copymove +# key: copymove +# binding: direct-keybinding +# expand-env: ((yas-indent-line 'fixed)) +# -- +//! default copy-constructor +${1:class}(const $1 &) = default; +//! default assignment operator +$1 & operator = (const $1 &) = default; +//! move-constructor: default +$1($1 &&) = default; +//! move-assignment operator: default +$1 & operator = ($1 &&) = default; \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/cout b/home/develop/emacs/snippets/c++-mode/cout new file mode 100644 index 0000000..7cb355b --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/cout @@ -0,0 +1,8 @@ +# -*- mode: snippet -*- +# contributor: York Zhao +# name: cout +# key: cout +# -- +`(progn (save-excursion) (goto-char (point-min)) (unless (re-search-forward +"^using\\s-+namespace std;" nil 'no-errer) "std::")) +`cout << $0 << '\n'; \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/cv b/home/develop/emacs/snippets/c++-mode/cv new file mode 100644 index 0000000..8b6237e --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/cv @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: cv +# key: cv +# -- +std::cout << "$1 " << $1 << std::endl; \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/d b/home/develop/emacs/snippets/c++-mode/d new file mode 100644 index 0000000..06b2573 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/d @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: d +# key: d +# -- +qDebug() << \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/debug b/home/develop/emacs/snippets/c++-mode/debug new file mode 100644 index 0000000..1bb30d6 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/debug @@ -0,0 +1,6 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: debug +# key: debug +# binding: direct-keybinding +# -- +static constexpr bool debug = true; \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/debugf b/home/develop/emacs/snippets/c++-mode/debugf new file mode 100644 index 0000000..4605e89 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/debugf @@ -0,0 +1,6 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: debugf +# key: debugf +# binding: direct-keybinding +# -- +static constexpr bool debug = false; \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/doc b/home/develop/emacs/snippets/c++-mode/doc new file mode 100644 index 0000000..18470d1 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/doc @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: doc +# key: doc +# -- +/** + * @brief $1 + */ \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/dog b/home/develop/emacs/snippets/c++-mode/dog new file mode 100644 index 0000000..1e7561a --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/dog @@ -0,0 +1,12 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: dog +# key: dog +# binding: direct-keybinding +# expand-env: ((yas-indent-line 'fixed)) +# -- +//! \\name $1 +//! \\{ + +$0 + +//! \\} \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/el b/home/develop/emacs/snippets/c++-mode/el new file mode 100644 index 0000000..0a7ae10 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/el @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: el +# key: el +# -- + << std::endl \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/functor b/home/develop/emacs/snippets/c++-mode/functor new file mode 100644 index 0000000..7956d70 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/functor @@ -0,0 +1,14 @@ +# -*- mode: snippet -*- +# name: functor +# key: functor +# -- +class ${1:Functor} +{ +public: + $1($2) { } + + void operator () () const { + } + +private: +}; diff --git a/home/develop/emacs/snippets/c++-mode/hi b/home/develop/emacs/snippets/c++-mode/hi new file mode 100644 index 0000000..21c4810 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/hi @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: hi +# key: hi +# -- +/*`(make-string (- 78 (current-column)) ?-)`*/ \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/i b/home/develop/emacs/snippets/c++-mode/i new file mode 100644 index 0000000..539c1b8 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/i @@ -0,0 +1,6 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: i +# key: i +# binding: direct-keybinding +# -- +`(if (char-equal ?) (preceding-char)) "," "")` m_${1:var}($1) \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/lock b/home/develop/emacs/snippets/c++-mode/lock new file mode 100644 index 0000000..c334ffa --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/lock @@ -0,0 +1,6 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: lock +# key: lock +# binding: direct-keybinding +# -- +std::unique_lock lock$1(mutex$1_); \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/mutexlock b/home/develop/emacs/snippets/c++-mode/mutexlock new file mode 100644 index 0000000..e99a3f2 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/mutexlock @@ -0,0 +1,7 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: mutexlock +# key: mutexlock +# binding: direct-keybinding +# -- +static std::mutex mutex$1; +std::unique_lock lock$1(mutex$1); \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/mysource b/home/develop/emacs/snippets/c++-mode/mysource new file mode 100644 index 0000000..3bbf3ef --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/mysource @@ -0,0 +1,17 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: mysource +# key: mysource +# binding: direct-keybinding +# -- +/******************************************************************************* + * $1/ + * + * $2 + ******************************************************************************/ + +namespace $1 { + + +} // namespace $1 + +/******************************************************************************/ \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/nl b/home/develop/emacs/snippets/c++-mode/nl new file mode 100644 index 0000000..46fca7b --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/nl @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: nl +# key: nl +# -- +// NOLINTNEXTLINE($1) \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/noncopy b/home/develop/emacs/snippets/c++-mode/noncopy new file mode 100644 index 0000000..0bffd34 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/noncopy @@ -0,0 +1,10 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: noncopy +# key: noncopy +# binding: direct-keybinding +# expand-env: ((yas-indent-line 'fixed)) +# -- +//! non-copyable: delete copy-constructor +${1:class}(const $1 &) = delete; +//! non-copyable: delete assignment operator +$1 & operator = (const $1 &) = delete; \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/noncopymove b/home/develop/emacs/snippets/c++-mode/noncopymove new file mode 100644 index 0000000..a13fffb --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/noncopymove @@ -0,0 +1,14 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: noncopymove +# key: noncopymove +# binding: direct-keybinding +# expand-env: ((yas-indent-line 'fixed)) +# -- +//! non-copyable: delete copy-constructor +${1:class}(const $1 &) = delete; +//! non-copyable: delete assignment operator +$1 & operator = (const $1 &) = delete; +//! move-constructor: default +$1($1 &&) noexcept = default; +//! move-assignment operator: default +$1 & operator = ($1 &&) noexcept = default; \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/ns b/home/develop/emacs/snippets/c++-mode/ns new file mode 100644 index 0000000..d22180d --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/ns @@ -0,0 +1,10 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: namespace +# key: ns +# binding: direct-keybinding +# -- +namespace $1 { + +$0 + +} // namespace $1 \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/operator_equal b/home/develop/emacs/snippets/c++-mode/operator_equal new file mode 100644 index 0000000..c055c1c --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/operator_equal @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: al +# key: al +# -- +allocator_type alloc \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/operator_istream b/home/develop/emacs/snippets/c++-mode/operator_istream new file mode 100644 index 0000000..b3dc7bc --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/operator_istream @@ -0,0 +1,8 @@ +# -*- mode: snippet -*- +# name: operator>> +# key: op>> +# -- +istream& operator>>(istream& s, const ${1:type}& ${2:c}) +{ + $0 +} diff --git a/home/develop/emacs/snippets/c++-mode/operator_less b/home/develop/emacs/snippets/c++-mode/operator_less new file mode 100644 index 0000000..4501fb1 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/operator_less @@ -0,0 +1,8 @@ +# -*- mode: snippet -*- +# name: operator< +# key: op< +# -- +friend bool operator < (const ${1:type}& a, const $1& b) +{ + return $0; +} \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/operator_ostream b/home/develop/emacs/snippets/c++-mode/operator_ostream new file mode 100644 index 0000000..08c0f91 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/operator_ostream @@ -0,0 +1,8 @@ +# -*- mode: snippet -*- +# name: operator<< +# key: op<< +# -- +friend std::ostream& operator << (std::ostream& os, const ${1:type}& ${2:x}) +{ + return os << $0; +} \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/os b/home/develop/emacs/snippets/c++-mode/os new file mode 100644 index 0000000..4905eab --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/os @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: os +# key: os +# -- +os << " $1=" << x.$1; \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/oso b/home/develop/emacs/snippets/c++-mode/oso new file mode 100644 index 0000000..aad8a02 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/oso @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# name: oso +# key: oso +# -- +if (${2:t}.${1:var}) + os << " $1=" << $2.$1; diff --git a/home/develop/emacs/snippets/c++-mode/oss b/home/develop/emacs/snippets/c++-mode/oss new file mode 100644 index 0000000..269ccea --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/oss @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# name: oss +# key: oss +# -- +std::ostringstream oss; +oss << $0 \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/pe b/home/develop/emacs/snippets/c++-mode/pe new file mode 100644 index 0000000..99107e1 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/pe @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: pe +# key: pe +# -- +v.$1 += p.$1; \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/perl b/home/develop/emacs/snippets/c++-mode/perl new file mode 100644 index 0000000..a24795c --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/perl @@ -0,0 +1,8 @@ +# -*- mode: snippet -*- +# name: perl +# key: perl +# -- +/*[[[perl + $0 + ]]]*/ +//[[[end]]] diff --git a/home/develop/emacs/snippets/c++-mode/q b/home/develop/emacs/snippets/c++-mode/q new file mode 100644 index 0000000..8da20b1 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/q @@ -0,0 +1,10 @@ +# -*- mode: snippet -*- +# name: q +# key: q +# -- +db::Query q = cmd.db_.query << "SELECT $1" + << into(...); + +while (q.next()) +{ +} diff --git a/home/develop/emacs/snippets/c++-mode/stdrand b/home/develop/emacs/snippets/c++-mode/stdrand new file mode 100644 index 0000000..14368ef --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/stdrand @@ -0,0 +1,6 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: stdrand +# key: stdrand +# binding: direct-keybinding +# -- +std::default_random_engine ${1:name}(std::random_device { } ()) \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/stdsleep b/home/develop/emacs/snippets/c++-mode/stdsleep new file mode 100644 index 0000000..1a7ebf5 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/stdsleep @@ -0,0 +1,6 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: stdsleep +# key: stdsleep +# binding: direct-keybinding +# -- +std::this_thread::sleep_for(std::chrono::seconds($1)); \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/sv b/home/develop/emacs/snippets/c++-mode/sv new file mode 100644 index 0000000..d0a7ce2 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/sv @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: sv +# key: sv +# -- +std::string_view \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/svlit b/home/develop/emacs/snippets/c++-mode/svlit new file mode 100644 index 0000000..7257b0f --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/svlit @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: svlit +# key: svlit +# -- +using namespace std::string_view_literals; \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/timestamp b/home/develop/emacs/snippets/c++-mode/timestamp new file mode 100644 index 0000000..f0fd966 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/timestamp @@ -0,0 +1,9 @@ +# -*- mode: snippet -*- +# name: timestamp +# key: timestamp +# -- +//! Time is measured using chrono::steady_clock +static double timestamp() { + return std::chrono::duration_cast >( + std::chrono::steady_clock::now().time_since_epoch()).count(); +} diff --git a/home/develop/emacs/snippets/c++-mode/try b/home/develop/emacs/snippets/c++-mode/try new file mode 100644 index 0000000..aa71879 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/try @@ -0,0 +1,10 @@ +# -*- mode: snippet -*- +# name: try +# key: try +# a bit too intrusive now still, not always I want to do this +# -- +try { + $0 +} catch (${1:std::exception& e}) { + +} \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/using_ator b/home/develop/emacs/snippets/c++-mode/using_ator new file mode 100644 index 0000000..bf10034 --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/using_ator @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: using_ator +# key: using +# -- +using allocator_type = xplat::polymorphic_allocator<>; \ No newline at end of file diff --git a/home/develop/emacs/snippets/c++-mode/vls b/home/develop/emacs/snippets/c++-mode/vls new file mode 100644 index 0000000..de9044b --- /dev/null +++ b/home/develop/emacs/snippets/c++-mode/vls @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: ls +# key: ls +# -- +common::allocate_local_shared \ No newline at end of file diff --git a/home/develop/emacs/snippets/c-mode/.yas-parents b/home/develop/emacs/snippets/c-mode/.yas-parents new file mode 100644 index 0000000..4ad42bb --- /dev/null +++ b/home/develop/emacs/snippets/c-mode/.yas-parents @@ -0,0 +1,2 @@ +cc-mode +text-mode \ No newline at end of file diff --git a/home/develop/emacs/snippets/capnp-mode/hr b/home/develop/emacs/snippets/capnp-mode/hr new file mode 100644 index 0000000..3c3d35f --- /dev/null +++ b/home/develop/emacs/snippets/capnp-mode/hr @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: hr +# key: hr +# -- +################################################################################ \ No newline at end of file diff --git a/home/develop/emacs/snippets/cc-mode/c b/home/develop/emacs/snippets/cc-mode/c new file mode 100644 index 0000000..f7e7b20 --- /dev/null +++ b/home/develop/emacs/snippets/cc-mode/c @@ -0,0 +1,6 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: c +# key: c +# binding: direct-keybinding +# -- +/* $1 */ \ No newline at end of file diff --git a/home/develop/emacs/snippets/cc-mode/cc b/home/develop/emacs/snippets/cc-mode/cc new file mode 100644 index 0000000..973da5d --- /dev/null +++ b/home/develop/emacs/snippets/cc-mode/cc @@ -0,0 +1,7 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: cc +# key: cc +# binding: direct-keybinding +# -- +/** $1 + */ \ No newline at end of file diff --git a/home/develop/emacs/snippets/cc-mode/comment-spacerline b/home/develop/emacs/snippets/cc-mode/comment-spacerline new file mode 100644 index 0000000..4cd20bf --- /dev/null +++ b/home/develop/emacs/snippets/cc-mode/comment-spacerline @@ -0,0 +1,6 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: comment-spacerline +# key: *** +# binding: direct-keybinding +# -- +/******************************************************************************/ \ No newline at end of file diff --git a/home/develop/emacs/snippets/cc-mode/for b/home/develop/emacs/snippets/cc-mode/for new file mode 100644 index 0000000..6dfa983 --- /dev/null +++ b/home/develop/emacs/snippets/cc-mode/for @@ -0,0 +1,8 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: for +# key: for +# binding: direct-keybinding +# -- +for ($1) { + $0 +} \ No newline at end of file diff --git a/home/develop/emacs/snippets/cc-mode/fori b/home/develop/emacs/snippets/cc-mode/fori new file mode 100644 index 0000000..c5a06a4 --- /dev/null +++ b/home/develop/emacs/snippets/cc-mode/fori @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: fori +# key: fori +# -- +for (${1:std::size_t} ${2:i} = ${3:0}; $2 ${4:!= size()}; ++$2) { + $0 +} \ No newline at end of file diff --git a/home/develop/emacs/snippets/cc-mode/guard b/home/develop/emacs/snippets/cc-mode/guard new file mode 100644 index 0000000..7d502f7 --- /dev/null +++ b/home/develop/emacs/snippets/cc-mode/guard @@ -0,0 +1,10 @@ +# -*- mode: snippet -*- +# name: guard +# key: guard +# -- +#ifndef ${1:NAME}_HEADER +#define $1_HEADER + +$0 + +#endif // $1_HEADER \ No newline at end of file diff --git a/home/develop/emacs/snippets/cc-mode/in b/home/develop/emacs/snippets/cc-mode/in new file mode 100644 index 0000000..be369b5 --- /dev/null +++ b/home/develop/emacs/snippets/cc-mode/in @@ -0,0 +1,6 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: in +# key: in +# binding: direct-keybinding +# -- +#include <$0> \ No newline at end of file diff --git a/home/develop/emacs/snippets/cc-mode/inc b/home/develop/emacs/snippets/cc-mode/inc new file mode 100644 index 0000000..09d63e8 --- /dev/null +++ b/home/develop/emacs/snippets/cc-mode/inc @@ -0,0 +1,6 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: inc +# key: inc +# binding: direct-keybinding +# -- +#include "$0" \ No newline at end of file diff --git a/home/develop/emacs/snippets/cc-mode/main b/home/develop/emacs/snippets/cc-mode/main new file mode 100644 index 0000000..a0ca795 --- /dev/null +++ b/home/develop/emacs/snippets/cc-mode/main @@ -0,0 +1,9 @@ +# -*- mode: snippet -*- +# name: main +# key: main +# -- +int main(${1:int argc, char *argv[]}) +{ + $0 + return 0; +} diff --git a/home/develop/emacs/snippets/cc-mode/packed b/home/develop/emacs/snippets/cc-mode/packed new file mode 100644 index 0000000..b4eb125 --- /dev/null +++ b/home/develop/emacs/snippets/cc-mode/packed @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: packed +# key: packed +# -- +__attribute__((__packed__))$0 \ No newline at end of file diff --git a/home/develop/emacs/snippets/cc-mode/switch b/home/develop/emacs/snippets/cc-mode/switch new file mode 100644 index 0000000..0916059 --- /dev/null +++ b/home/develop/emacs/snippets/cc-mode/switch @@ -0,0 +1,11 @@ +# -*- mode: snippet -*- +# name: switch +# key: case +# -- +switch (${1:ch}) { + case ${2:const}: + ${3:a = b}; + break; + ${4:default: + ${5:action}} +} diff --git a/home/develop/emacs/snippets/cmake-mode/.yas-parents b/home/develop/emacs/snippets/cmake-mode/.yas-parents new file mode 100644 index 0000000..d58dacb --- /dev/null +++ b/home/develop/emacs/snippets/cmake-mode/.yas-parents @@ -0,0 +1 @@ +text-mode \ No newline at end of file diff --git a/home/develop/emacs/snippets/cmake-mode/cmake_minimum_required b/home/develop/emacs/snippets/cmake-mode/cmake_minimum_required new file mode 100644 index 0000000..1d1b7aa --- /dev/null +++ b/home/develop/emacs/snippets/cmake-mode/cmake_minimum_required @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: cmake_minimum_required +# key: min +# -- +cmake_minimum_required(VERSION ${1:2.6}) \ No newline at end of file diff --git a/home/develop/emacs/snippets/cmake-mode/foreach b/home/develop/emacs/snippets/cmake-mode/foreach new file mode 100644 index 0000000..69aaffb --- /dev/null +++ b/home/develop/emacs/snippets/cmake-mode/foreach @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: foreach +# key: for +# -- +foreach(${1:item} \${${2:array}}) + $0 +endforeach() \ No newline at end of file diff --git a/home/develop/emacs/snippets/cmake-mode/function b/home/develop/emacs/snippets/cmake-mode/function new file mode 100644 index 0000000..f051a70 --- /dev/null +++ b/home/develop/emacs/snippets/cmake-mode/function @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: function +# key: fun +# -- +function (${1:name}) + $0 +endfunction() \ No newline at end of file diff --git a/home/develop/emacs/snippets/cmake-mode/hr b/home/develop/emacs/snippets/cmake-mode/hr new file mode 100644 index 0000000..e26132e --- /dev/null +++ b/home/develop/emacs/snippets/cmake-mode/hr @@ -0,0 +1,6 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: hr +# key: hr +# binding: direct-keybinding +# -- +`(make-string (- 80 (current-column)) ?#)` diff --git a/home/develop/emacs/snippets/cmake-mode/if b/home/develop/emacs/snippets/cmake-mode/if new file mode 100644 index 0000000..e9f3658 --- /dev/null +++ b/home/develop/emacs/snippets/cmake-mode/if @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: if +# key: if +# -- +if(${1:cond}) + $0 +endif() \ No newline at end of file diff --git a/home/develop/emacs/snippets/cmake-mode/ifelse b/home/develop/emacs/snippets/cmake-mode/ifelse new file mode 100644 index 0000000..45557ba --- /dev/null +++ b/home/develop/emacs/snippets/cmake-mode/ifelse @@ -0,0 +1,9 @@ +# -*- mode: snippet -*- +# name: ifelse +# key: if +# -- +if(${1:cond}) + $2 +else(${3:cond}) + $0 +endif() \ No newline at end of file diff --git a/home/develop/emacs/snippets/cmake-mode/include b/home/develop/emacs/snippets/cmake-mode/include new file mode 100644 index 0000000..e17dfa0 --- /dev/null +++ b/home/develop/emacs/snippets/cmake-mode/include @@ -0,0 +1,5 @@ +# type: command +# key: inc +# name: include +# -- +include ($0) diff --git a/home/develop/emacs/snippets/cmake-mode/macro b/home/develop/emacs/snippets/cmake-mode/macro new file mode 100644 index 0000000..27d691f --- /dev/null +++ b/home/develop/emacs/snippets/cmake-mode/macro @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: macro +# key: macro +# -- +macro(${1:name}${2: args}) + +endmacro() \ No newline at end of file diff --git a/home/develop/emacs/snippets/cmake-mode/message b/home/develop/emacs/snippets/cmake-mode/message new file mode 100644 index 0000000..ede2c77 --- /dev/null +++ b/home/develop/emacs/snippets/cmake-mode/message @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: message +# key: msg +# -- +message(${1:STATUS }"$0") \ No newline at end of file diff --git a/home/develop/emacs/snippets/cmake-mode/option b/home/develop/emacs/snippets/cmake-mode/option new file mode 100644 index 0000000..c71f7f2 --- /dev/null +++ b/home/develop/emacs/snippets/cmake-mode/option @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: option +# key: opt +# -- +option (${1:OPT} "${2:docstring}" ${3:value}) \ No newline at end of file diff --git a/home/develop/emacs/snippets/cmake-mode/project b/home/develop/emacs/snippets/cmake-mode/project new file mode 100644 index 0000000..ed8d1a2 --- /dev/null +++ b/home/develop/emacs/snippets/cmake-mode/project @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: project +# key: proj +# -- +project ($0) \ No newline at end of file diff --git a/home/develop/emacs/snippets/cmake-mode/set b/home/develop/emacs/snippets/cmake-mode/set new file mode 100644 index 0000000..8d105bd --- /dev/null +++ b/home/develop/emacs/snippets/cmake-mode/set @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: set +# key: set +# -- +set(${1:var} ${2:value}) \ No newline at end of file diff --git a/home/develop/emacs/snippets/cperl-mode/.yas-parents b/home/develop/emacs/snippets/cperl-mode/.yas-parents new file mode 100644 index 0000000..d58dacb --- /dev/null +++ b/home/develop/emacs/snippets/cperl-mode/.yas-parents @@ -0,0 +1 @@ +text-mode \ No newline at end of file diff --git a/home/develop/emacs/snippets/cperl-mode/package b/home/develop/emacs/snippets/cperl-mode/package new file mode 100644 index 0000000..e7cc64a --- /dev/null +++ b/home/develop/emacs/snippets/cperl-mode/package @@ -0,0 +1,21 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: package +# key: package +# binding: direct-keybinding +# -- +#!/usr/bin/perl -w + +package ${1:package}; + +use strict; +use warnings; +use diagnostics; +use utf8; + +use Exporter; + +our @ISA = qw(Exporter); +our @EXPORT = qw(); +our @EXPORT_OK = qw(); + +1; \ No newline at end of file diff --git a/home/develop/emacs/snippets/cperl-mode/perl b/home/develop/emacs/snippets/cperl-mode/perl new file mode 100644 index 0000000..c0a8b44 --- /dev/null +++ b/home/develop/emacs/snippets/cperl-mode/perl @@ -0,0 +1,8 @@ +# -*- mode: snippet -*- +# name: perl +# key: perl +# -- +#!/usr/bin/env perl + +use strict; +use warnings; diff --git a/home/develop/emacs/snippets/css-mode/doc b/home/develop/emacs/snippets/css-mode/doc new file mode 100644 index 0000000..cb7688f --- /dev/null +++ b/home/develop/emacs/snippets/css-mode/doc @@ -0,0 +1,6 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: doc +# key: doc +# binding: direct-keybinding +# -- +/* $1 */ \ No newline at end of file diff --git a/home/develop/emacs/snippets/dockerfile-mode/hr b/home/develop/emacs/snippets/dockerfile-mode/hr new file mode 100644 index 0000000..3c3d35f --- /dev/null +++ b/home/develop/emacs/snippets/dockerfile-mode/hr @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: hr +# key: hr +# -- +################################################################################ \ No newline at end of file diff --git a/home/develop/emacs/snippets/ess-r-mode/hr b/home/develop/emacs/snippets/ess-r-mode/hr new file mode 100644 index 0000000..3c3d35f --- /dev/null +++ b/home/develop/emacs/snippets/ess-r-mode/hr @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: hr +# key: hr +# -- +################################################################################ \ No newline at end of file diff --git a/home/develop/emacs/snippets/java-mode/.yas-parents b/home/develop/emacs/snippets/java-mode/.yas-parents new file mode 100644 index 0000000..4ad42bb --- /dev/null +++ b/home/develop/emacs/snippets/java-mode/.yas-parents @@ -0,0 +1,2 @@ +cc-mode +text-mode \ No newline at end of file diff --git a/home/develop/emacs/snippets/java-mode/hr b/home/develop/emacs/snippets/java-mode/hr new file mode 100644 index 0000000..eaa0f5c --- /dev/null +++ b/home/develop/emacs/snippets/java-mode/hr @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: hr +# key: hr +# -- +/*`(make-string (- 78 (current-column)) ?*)`*/ \ No newline at end of file diff --git a/home/develop/emacs/snippets/latex-mode/.yas-parents b/home/develop/emacs/snippets/latex-mode/.yas-parents new file mode 100644 index 0000000..d58dacb --- /dev/null +++ b/home/develop/emacs/snippets/latex-mode/.yas-parents @@ -0,0 +1 @@ +text-mode \ No newline at end of file diff --git a/home/develop/emacs/snippets/latex-mode/begin b/home/develop/emacs/snippets/latex-mode/begin new file mode 100644 index 0000000..1c0a73b --- /dev/null +++ b/home/develop/emacs/snippets/latex-mode/begin @@ -0,0 +1,8 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: begin +# key: begin +# binding: direct-keybinding +# -- +\begin{${1:environment}} + $0 +\end{$1} \ No newline at end of file diff --git a/home/develop/emacs/snippets/latex-mode/cols b/home/develop/emacs/snippets/latex-mode/cols new file mode 100644 index 0000000..c3f19c8 --- /dev/null +++ b/home/develop/emacs/snippets/latex-mode/cols @@ -0,0 +1,12 @@ +# -*- mode: snippet -*- +# name: cols +# key: cols +# -- +\begin{columns} + \begin{column}{${1:.5}\linewidth} + column 1 + \end{column} + \begin{column}{${2:.5}\linewidth} + column 2 + \end{column} +\end{columns} diff --git a/home/develop/emacs/snippets/latex-mode/enumerate b/home/develop/emacs/snippets/latex-mode/enumerate new file mode 100644 index 0000000..9f7e81b --- /dev/null +++ b/home/develop/emacs/snippets/latex-mode/enumerate @@ -0,0 +1,8 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: enumerate +# key: enumerate +# binding: direct-keybinding +# -- +\begin{enumerate} +\item $0 +\end{enumerate} \ No newline at end of file diff --git a/home/develop/emacs/snippets/latex-mode/figure b/home/develop/emacs/snippets/latex-mode/figure new file mode 100644 index 0000000..87d0231 --- /dev/null +++ b/home/develop/emacs/snippets/latex-mode/figure @@ -0,0 +1,9 @@ +# -*- mode: snippet -*- +# name: figure +# key: figure +# -- +\begin{figure}[ht] + \centering + \includegraphics[${1:options}]{figures/${2:path.pdf}} + \caption{\label{fig:${3:label}} $0} +\end{figure} diff --git a/home/develop/emacs/snippets/latex-mode/frame b/home/develop/emacs/snippets/latex-mode/frame new file mode 100644 index 0000000..f0fcf39 --- /dev/null +++ b/home/develop/emacs/snippets/latex-mode/frame @@ -0,0 +1,10 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: frame +# key: frame +# binding: direct-keybinding +# -- +% ------------------------------------------------------------------------------ + +\begin{frame}{${1:title}} + +\end{frame} \ No newline at end of file diff --git a/home/develop/emacs/snippets/latex-mode/ho b/home/develop/emacs/snippets/latex-mode/ho new file mode 100644 index 0000000..6c606ba --- /dev/null +++ b/home/develop/emacs/snippets/latex-mode/ho @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: ho +# key: ho +# -- +% ---[ $1 ]------------------------------------------------- \ No newline at end of file diff --git a/home/develop/emacs/snippets/latex-mode/hr b/home/develop/emacs/snippets/latex-mode/hr new file mode 100644 index 0000000..b4c33f4 --- /dev/null +++ b/home/develop/emacs/snippets/latex-mode/hr @@ -0,0 +1,6 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: hr +# key: hr +# binding: direct-keybinding +# -- +% `(make-string (- 80 (current-column)) ?-)` diff --git a/home/develop/emacs/snippets/latex-mode/hrr b/home/develop/emacs/snippets/latex-mode/hrr new file mode 100644 index 0000000..d437cdc --- /dev/null +++ b/home/develop/emacs/snippets/latex-mode/hrr @@ -0,0 +1,6 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: hrr +# key: hrr +# binding: direct-keybinding +# -- +% ============================================================================== \ No newline at end of file diff --git a/home/develop/emacs/snippets/latex-mode/hrx b/home/develop/emacs/snippets/latex-mode/hrx new file mode 100644 index 0000000..cbd81a4 --- /dev/null +++ b/home/develop/emacs/snippets/latex-mode/hrx @@ -0,0 +1,9 @@ +# -*- mode: snippet -*- +# name: hrx +# key: hrx +# -- +% % +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% %% +% % diff --git a/home/develop/emacs/snippets/latex-mode/hx b/home/develop/emacs/snippets/latex-mode/hx new file mode 100644 index 0000000..0df8fcf --- /dev/null +++ b/home/develop/emacs/snippets/latex-mode/hx @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: hx +# key: hx +# -- +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file diff --git a/home/develop/emacs/snippets/latex-mode/itemize b/home/develop/emacs/snippets/latex-mode/itemize new file mode 100644 index 0000000..0e5ec8b --- /dev/null +++ b/home/develop/emacs/snippets/latex-mode/itemize @@ -0,0 +1,8 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: itemize +# key: itemize +# binding: direct-keybinding +# -- +\begin{itemize} +\item $0 +\end{itemize} \ No newline at end of file diff --git a/home/develop/emacs/snippets/latex-mode/modeline-de_DE b/home/develop/emacs/snippets/latex-mode/modeline-de_DE new file mode 100644 index 0000000..dc3e447 --- /dev/null +++ b/home/develop/emacs/snippets/latex-mode/modeline-de_DE @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: emacs modeline de_DE dictionary +# key: modeline +# -- +% -*- mode: latex; mode: flyspell; ispell-local-dictionary: "de_DE"; coding: utf-8 -*- diff --git a/home/develop/emacs/snippets/latex-mode/noex b/home/develop/emacs/snippets/latex-mode/noex new file mode 100644 index 0000000..941d355 --- /dev/null +++ b/home/develop/emacs/snippets/latex-mode/noex @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: noex +# key: noex +# -- +\tikzset{external/export=false} \ No newline at end of file diff --git a/home/develop/emacs/snippets/latex-mode/noexternal b/home/develop/emacs/snippets/latex-mode/noexternal new file mode 100644 index 0000000..e009f56 --- /dev/null +++ b/home/develop/emacs/snippets/latex-mode/noexternal @@ -0,0 +1,6 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: noexternal +# key: noexternal +# binding: direct-keybinding +# -- +\tikzset{external/export=false} \ No newline at end of file diff --git a/home/develop/emacs/snippets/latex-mode/template b/home/develop/emacs/snippets/latex-mode/template new file mode 100644 index 0000000..85d86f0 --- /dev/null +++ b/home/develop/emacs/snippets/latex-mode/template @@ -0,0 +1,73 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: template +# key: template +# binding: direct-keybinding +# -- +% -*- mode: latex; mode: flyspell; ispell-local-dictionary: "en_US"; coding: utf-8 -*- + +\documentclass[a4paper,12pt,twoside]{scrartcl} + +\setlength\overfullrule{14pt} % this enables big black bars on overlong lines. + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} + +\usepackage{lmodern} +\usepackage[english]{babel} + +\title{${1:title}} +\author{${2:Timo Bingmann}} + +% small margin +\usepackage[tmargin=20mm,bmargin=20mm,lmargin=20mm,rmargin=20mm]{geometry} + +% set default paragraph skip and indention +\setlength\parskip{\smallskipamount} +\setlength\parindent{0pt} + +% math support +\usepackage{amsmath,amssymb,array,mathtools} + +% smaller enumerations +\usepackage{enumitem} +\setlist[enumerate]{topsep=\smallskipamount,parsep=0pt} +\setlist[itemize]{topsep=\smallskipamount,parsep=0pt} +\setlist[enumerate,1]{topsep=\smallskipamount,parsep=0pt,label=(\roman*)} + +% for graphics +\usepackage{graphicx} + +% for nice graphics +\usepackage{tikz} +\usetikzlibrary{calc} + +% Hyperref +\usepackage{xcolor,hyperref} + +\hypersetup{ + colorlinks=true, + pdfborder={0 0 0}, + bookmarksopen=true, + bookmarksopenlevel=1, + bookmarksnumbered=true, + linkcolor=blue!60!black, + %linkcolor=black, + urlcolor=blue!60!black, + filecolor=green!60!black, + citecolor=blue!60!black, + pdfpagemode=UseNone, + unicode=true, + setpagesize=false, + bookmarksdepth=subsection, + pdftitle={$1}, + pdfauthor={$2}, + pdfsubject={}, +} + +\begin{document} + +\maketitle + +$0 + +\end{document} \ No newline at end of file diff --git a/home/develop/emacs/snippets/nix-mode/hr b/home/develop/emacs/snippets/nix-mode/hr new file mode 100644 index 0000000..5cb1157 --- /dev/null +++ b/home/develop/emacs/snippets/nix-mode/hr @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: hr +# key: hr +# -- +`(make-string (- 80 (current-column)) ?#)` \ No newline at end of file diff --git a/home/develop/emacs/snippets/protobuf-mode/hr b/home/develop/emacs/snippets/protobuf-mode/hr new file mode 100644 index 0000000..6973242 --- /dev/null +++ b/home/develop/emacs/snippets/protobuf-mode/hr @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: hr +# key: hr +# -- +/******************************************************************************/ \ No newline at end of file diff --git a/home/develop/emacs/snippets/python-mode/hr b/home/develop/emacs/snippets/python-mode/hr new file mode 100644 index 0000000..61f3449 --- /dev/null +++ b/home/develop/emacs/snippets/python-mode/hr @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: hr +# key: hr +# -- +########################################################################## \ No newline at end of file diff --git a/home/develop/emacs/snippets/python-mode/python b/home/develop/emacs/snippets/python-mode/python new file mode 100644 index 0000000..61a370a --- /dev/null +++ b/home/develop/emacs/snippets/python-mode/python @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: python +# key: python +# -- +#!/usr/bin/env python3 diff --git a/home/develop/emacs/snippets/scala-ts-mode/doc b/home/develop/emacs/snippets/scala-ts-mode/doc new file mode 100644 index 0000000..985c466 --- /dev/null +++ b/home/develop/emacs/snippets/scala-ts-mode/doc @@ -0,0 +1,7 @@ +# -*- mode: snippet -*- +# name: doc +# key: doc +# -- +/** + * $1 + */ \ No newline at end of file diff --git a/home/develop/emacs/snippets/sh-mode/bash b/home/develop/emacs/snippets/sh-mode/bash new file mode 100644 index 0000000..3989aa9 --- /dev/null +++ b/home/develop/emacs/snippets/sh-mode/bash @@ -0,0 +1,8 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: bash +# key: bash +# binding: direct-keybinding +# -- +#!/usr/bin/env bash + +set -xe diff --git a/home/develop/emacs/snippets/sh-mode/hr b/home/develop/emacs/snippets/sh-mode/hr new file mode 100644 index 0000000..b2bea33 --- /dev/null +++ b/home/develop/emacs/snippets/sh-mode/hr @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: hr +# key: hr +# -- +################################################################################ diff --git a/home/develop/emacs/snippets/text-mode/ho b/home/develop/emacs/snippets/text-mode/ho new file mode 100644 index 0000000..c473485 --- /dev/null +++ b/home/develop/emacs/snippets/text-mode/ho @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: ho +# key: ho +# -- +// ---[ $1 ]--------------------------- \ No newline at end of file diff --git a/home/develop/emacs/snippets/text-mode/hr b/home/develop/emacs/snippets/text-mode/hr new file mode 100644 index 0000000..eaa0f5c --- /dev/null +++ b/home/develop/emacs/snippets/text-mode/hr @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: hr +# key: hr +# -- +/*`(make-string (- 78 (current-column)) ?*)`*/ \ No newline at end of file diff --git a/home/develop/emacs/snippets/text-mode/modeline-de_DE b/home/develop/emacs/snippets/text-mode/modeline-de_DE new file mode 100644 index 0000000..a05926f --- /dev/null +++ b/home/develop/emacs/snippets/text-mode/modeline-de_DE @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: emacs modeline de_DE dictionary +# key: modeline +# -- +% -*- mode: text; mode: flyspell; ispell-local-dictionary: "de_DE"; coding: utf-8 -*- diff --git a/home/develop/emacs/snippets/text-mode/modeline-en_US b/home/develop/emacs/snippets/text-mode/modeline-en_US new file mode 100644 index 0000000..6ab1a5e --- /dev/null +++ b/home/develop/emacs/snippets/text-mode/modeline-en_US @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: emacs modeline en_US dictionary +# key: modeline +# -- +% -*- mode: text; mode: flyspell; ispell-local-dictionary: "en_US"; coding: utf-8 -*-