diff options
| author | 2025-03-09 21:28:36 +0200 | |
|---|---|---|
| committer | 2025-03-09 23:18:10 +0200 | |
| commit | 1d9121b6e716563b502252f621f81f0f95d5ea93 (patch) | |
| tree | 72bf359ea2ad87cf60b25f14217bece2e871f38a /arkta/arkta-progmodes.el | |
| parent | Add arkta-cosmetic.el, add stuff from init.el (diff) | |
| download | emacs.d-1d9121b6e716563b502252f621f81f0f95d5ea93.tar.gz emacs.d-1d9121b6e716563b502252f621f81f0f95d5ea93.tar.xz emacs.d-1d9121b6e716563b502252f621f81f0f95d5ea93.zip | |
Add arkta-progmodes.el, add stuff from init.el
Diffstat (limited to 'arkta/arkta-progmodes.el')
| -rw-r--r-- | arkta/arkta-progmodes.el | 250 |
1 files changed, 250 insertions, 0 deletions
diff --git a/arkta/arkta-progmodes.el b/arkta/arkta-progmodes.el new file mode 100644 index 0000000..06d736b --- /dev/null +++ b/arkta/arkta-progmodes.el | |||
| @@ -0,0 +1,250 @@ | |||
| 1 | ;; -*- lexical-binding: t -*- | ||
| 2 | ;; Copyright © 2018-2025 Uko Koknevics | ||
| 3 | |||
| 4 | (use-package c-ts-mode | ||
| 5 | :after treesit | ||
| 6 | :straight '(c-ts-mode :type built-in) | ||
| 7 | :mode ("\\.c\\'" | ||
| 8 | ("\\.cpp\\'" . c++-ts-mode)) | ||
| 9 | :init | ||
| 10 | (defun arkta/c-setup () | ||
| 11 | (set-tab-usage t) | ||
| 12 | (set-tab-width c-ts-mode-indent-offset)) | ||
| 13 | :hook (c-ts-base-mode . arkta/c-setup) | ||
| 14 | :custom | ||
| 15 | (c-ts-mode-indent-offset 8) | ||
| 16 | (c-ts-mode-indent-style (lambda () | ||
| 17 | `(((node-is ")") parent-bol 0) | ||
| 18 | ((node-is "}") parent-bol 0) | ||
| 19 | ((node-is "access_specifier") parent-bol 0) | ||
| 20 | ((parent-is "argument_list") parent-bol c-ts-mode-indent-offset) | ||
| 21 | ((parent-is "parameter_list") parent-bol c-ts-mode-indent-offset) | ||
| 22 | ((parent-is "field_declaration_list") parent-bol c-ts-mode-indent-offset) | ||
| 23 | ,@(alist-get 'linux (c-ts-mode--indent-styles 'c)))))) | ||
| 24 | |||
| 25 | (use-package cmake-ts-mode | ||
| 26 | :after treesit | ||
| 27 | :straight '(cmake-ts-mode :type built-in) | ||
| 28 | :mode ("CMakeLists\\.txt\\'" | ||
| 29 | "\\.cmake\\'")) | ||
| 30 | |||
| 31 | (use-package csharp-mode | ||
| 32 | :after treesit | ||
| 33 | :straight '(csharp-mode :type built-in) | ||
| 34 | :mode "\\.cs\\'") | ||
| 35 | |||
| 36 | (use-package css-mode | ||
| 37 | :after treesit | ||
| 38 | :straight '(css-mode :type built-in) | ||
| 39 | :mode "\\.css\\'") | ||
| 40 | |||
| 41 | (use-package dart-mode | ||
| 42 | :straight t | ||
| 43 | :mode "\\.dart\\'") | ||
| 44 | |||
| 45 | (use-package dockerfile-ts-mode | ||
| 46 | :after treesit | ||
| 47 | :straight '(dockerfile-ts-mode :type built-in) | ||
| 48 | :mode "Dockerfile\\'") | ||
| 49 | |||
| 50 | (use-package ebuild-mode | ||
| 51 | :straight t | ||
| 52 | :mode ("\\.ebuild\\'" | ||
| 53 | "\\.eclass\\'")) | ||
| 54 | |||
| 55 | (use-package elisp-mode | ||
| 56 | :straight '(elisp-mode :type built-in) | ||
| 57 | :mode ("\\.el\\'" . emacs-lisp-mode) | ||
| 58 | :init | ||
| 59 | (use-package auto-compile | ||
| 60 | :straight t | ||
| 61 | :hook ((emacs-lisp-mode . auto-compile-on-load-mode) | ||
| 62 | (emacs-lisp-mode . auto-compile-on-save-mode)))) | ||
| 63 | |||
| 64 | (use-package elixir-mode | ||
| 65 | :straight t | ||
| 66 | :mode "\\.exs?\\'" | ||
| 67 | :init | ||
| 68 | (defun arkta/elixir-setup () | ||
| 69 | (add-hook 'before-save-hook #'elixir-format nil t)) | ||
| 70 | :hook (elixir-mode . arkta/elixir-setup)) | ||
| 71 | |||
| 72 | (use-package gdscript-mode | ||
| 73 | :straight t | ||
| 74 | :mode "\\.gd\\'") | ||
| 75 | |||
| 76 | (use-package go-ts-mode | ||
| 77 | :after treesit | ||
| 78 | :straight '(go-ts-mode :type built-in) | ||
| 79 | :mode "\\.go\\'" | ||
| 80 | :init | ||
| 81 | (defun arkta/go-setup () | ||
| 82 | (add-hook 'before-save-hook #'gofmt-before-save nil t) | ||
| 83 | (set-tab-usage t) | ||
| 84 | (set-tab-width go-ts-mode-indent-offset)) | ||
| 85 | :hook (go-ts-mode . arkta/go-setup)) | ||
| 86 | |||
| 87 | (use-package groovy-mode | ||
| 88 | :straight t | ||
| 89 | :mode ("Jenkinsfile\\'" | ||
| 90 | "\\.gradle\\'" | ||
| 91 | "\\.groovy\\'")) | ||
| 92 | |||
| 93 | (use-package haskell-mode | ||
| 94 | :straight t | ||
| 95 | :mode "\\.hs\\'") | ||
| 96 | |||
| 97 | (use-package java-ts-mode | ||
| 98 | :after treesit | ||
| 99 | :straight '(java-ts-mode :type built-in) | ||
| 100 | :mode "\\.java\\'") | ||
| 101 | |||
| 102 | (use-package js | ||
| 103 | :after treesit | ||
| 104 | :straight '(js :type built-in) | ||
| 105 | :mode ("\\.js\\'" . js-ts-mode)) | ||
| 106 | |||
| 107 | (use-package json-ts-mode | ||
| 108 | :after treesit | ||
| 109 | :straight '(json-ts-mode :type built-in) | ||
| 110 | :mode "\\.json\\'") | ||
| 111 | |||
| 112 | (use-package lisp-mode | ||
| 113 | :straight '(lisp-mode :type built-in) | ||
| 114 | :mode "\\.lisp\\'" | ||
| 115 | :init | ||
| 116 | (use-package slime | ||
| 117 | :straight t | ||
| 118 | :after lisp-mode | ||
| 119 | :commands slime | ||
| 120 | :custom | ||
| 121 | (inferior-lisp-program (executable-find "sbcl")))) | ||
| 122 | |||
| 123 | (use-package lua-mode | ||
| 124 | :straight t | ||
| 125 | :custom | ||
| 126 | (lua-indent-level 4) | ||
| 127 | :mode ("\\.lua\\'" "\\.rockspec\\'")) | ||
| 128 | |||
| 129 | (use-package make-mode | ||
| 130 | :straight '(make-mode :type built-in) | ||
| 131 | :mode (("Makefile\\'" . makefile-gmake-mode) | ||
| 132 | "GNUmakefile\\'" | ||
| 133 | "\\.mk\\(\\.template\\)?\\'")) | ||
| 134 | |||
| 135 | (use-package markdown-mode | ||
| 136 | :straight t | ||
| 137 | :mode ("\\.md\\'" . gfm-mode)) | ||
| 138 | |||
| 139 | (use-package nasm-mode | ||
| 140 | :straight t | ||
| 141 | :mode ("\\.asm\\'" | ||
| 142 | "\\.inc\\'") | ||
| 143 | :init | ||
| 144 | (defun arkta/nasm-setup () | ||
| 145 | (set-tab-width 4)) | ||
| 146 | :hook (nasm-mode . arkta/nasm-setup)) | ||
| 147 | |||
| 148 | (use-package nix-mode | ||
| 149 | :straight t | ||
| 150 | :mode "\\.nix\\'") | ||
| 151 | |||
| 152 | (use-package nxml-mode | ||
| 153 | :straight '(nxml-mode :type built-in) | ||
| 154 | :mode ("\\.xml\\'" | ||
| 155 | "\\.plist\\'" | ||
| 156 | "\\.svg\\'")) | ||
| 157 | |||
| 158 | (use-package org | ||
| 159 | :straight '(org :type built-in) | ||
| 160 | :bind (("C-c l" . org-store-link) | ||
| 161 | ("C-c a" . org-agenda)) | ||
| 162 | :mode ("\\.org\\'" . org-mode) | ||
| 163 | :init | ||
| 164 | (use-package htmlize | ||
| 165 | :straight t) | ||
| 166 | :custom | ||
| 167 | (org-agenda-files '("~/TODO.org")) | ||
| 168 | (org-log-done t)) | ||
| 169 | |||
| 170 | (use-package php-mode | ||
| 171 | :straight t | ||
| 172 | :mode "\\.php\\'") | ||
| 173 | |||
| 174 | (use-package pico8-mode | ||
| 175 | :straight '(pico8-mode :host github | ||
| 176 | :repo "Kaali/pico8-mode") | ||
| 177 | :mode "\\.p8\\'") | ||
| 178 | |||
| 179 | (use-package prolog | ||
| 180 | :straight '(prolog :type built-in) | ||
| 181 | :mode ("\\.pl\\'" . prolog-mode)) | ||
| 182 | |||
| 183 | (use-package python | ||
| 184 | :after treesit | ||
| 185 | :straight '(python :type built-in) | ||
| 186 | :mode ("\\.py\\'" . python-ts-mode)) | ||
| 187 | |||
| 188 | (use-package ruby-ts-mode | ||
| 189 | :after treesit | ||
| 190 | :straight '(ruby-ts-mode :type built-in) | ||
| 191 | :mode "\\.rb\\'") | ||
| 192 | |||
| 193 | (use-package rust-ts-mode | ||
| 194 | :after treesit | ||
| 195 | :straight '(rust-ts-mode :type built-in) | ||
| 196 | :mode "\\.rs\\'") | ||
| 197 | |||
| 198 | (use-package scala-mode | ||
| 199 | :straight t | ||
| 200 | :mode "\\.scala\\'") | ||
| 201 | |||
| 202 | (use-package scheme | ||
| 203 | :straight '(scheme :type built-in) | ||
| 204 | :commands scheme-mode | ||
| 205 | :mode ("\\.scm\\'" . scheme-mode) | ||
| 206 | :config | ||
| 207 | (put 'module 'scheme-indent-function 2)) | ||
| 208 | |||
| 209 | (use-package smalltalk-mode | ||
| 210 | :straight t | ||
| 211 | :mode "\\.st\\'") | ||
| 212 | |||
| 213 | (use-package svelte-mode | ||
| 214 | :straight t | ||
| 215 | :mode ("\\.svelte\\'" "\\.svx\\'")) | ||
| 216 | |||
| 217 | (use-package sml-mode | ||
| 218 | :straight t | ||
| 219 | :mode "\\.sml\\'" | ||
| 220 | :init | ||
| 221 | (use-package company-mlton | ||
| 222 | :after company | ||
| 223 | :straight '(company-mlton :host github | ||
| 224 | :repo "MatthewFluet/company-mlton") | ||
| 225 | :hook (sml-mode . company-mlton-init))) | ||
| 226 | |||
| 227 | (use-package toml-ts-mode | ||
| 228 | :after treesit | ||
| 229 | :straight '(toml-ts-mode :type built-in) | ||
| 230 | :mode "\\.toml\\'") | ||
| 231 | |||
| 232 | (use-package typescript-ts-mode | ||
| 233 | :after treesit | ||
| 234 | :straight '(typescript-ts-mode :type built-in) | ||
| 235 | :mode "\\.ts\\'") | ||
| 236 | |||
| 237 | (use-package typst-mode | ||
| 238 | :straight t | ||
| 239 | :mode "\\.typ\\'") | ||
| 240 | |||
| 241 | (use-package yaml-ts-mode | ||
| 242 | :after treesit | ||
| 243 | :straight '(yaml-ts-mode :type built-in) | ||
| 244 | :mode "\\.ya?ml\\'") | ||
| 245 | |||
| 246 | (use-package zig-mode | ||
| 247 | :straight t | ||
| 248 | :mode "\\.zig\\'") | ||
| 249 | |||
| 250 | (provide 'arkta-progmodes) | ||