From 31639c1638629a4ffcf1a5c13feda8f6eca1b03b Mon Sep 17 00:00:00 2001 From: Nathan McCarty Date: Mon, 31 Oct 2022 12:08:17 -0400 Subject: [PATCH] FP dev tools --- config.org | 11 ++++++++ init.el | 79 +++++++++++++++++++++++++++-------------------------- packages.el | 4 +++ 3 files changed, 55 insertions(+), 39 deletions(-) diff --git a/config.org b/config.org index 84ff451..05bfd61 100644 --- a/config.org +++ b/config.org @@ -741,6 +741,17 @@ Use rnix-lsp :major-modes '(nix-mode) :server-id 'nix))) #+end_src +** Idris2 +Configure idris2-mode, which we do manually since it's not yet in doom. +#+begin_src emacs-lisp +(use-package! idris2-mode) +#+end_src +** Haskell +Setup formatting +#+begin_src emacs-lisp +(after! lsp-haskell + (setq lsp-haskell-formatting-provider "brittany")) +#+end_src * Composition Modes for handling plain text and prose ** Markdown diff --git a/init.el b/init.el index 314cb20..0842014 100644 --- a/init.el +++ b/init.el @@ -15,63 +15,63 @@ ;; directory (for easy access to its source code). (doom! :completion - (company +childframe) ; the ultimate code completion backend + (company +childframe) ; the ultimate code completion backend (ivy +fuzzy +precient +childframe +icons) :ui - doom ; what makes DOOM look the way it does - doom-dashboard ; a nifty splash screen for Emacs - (emoji +unicode) ; 🙂 - hl-todo ; highlight todo-words - indent-guides ; highlighted indent columns - modeline ; snazzy, Atom-inspired modeline, plus API - nav-flash ; blink cursor line after big motions - (popup +defaults) ; tame sudden yet inevitable temporary windows - (treemacs +lsp) ; a project drawer, like neotree but cooler - unicode ; extended unicode support for various languages + doom ; what makes DOOM look the way it does + doom-dashboard ; a nifty splash screen for Emacs + (emoji +unicode) ; 🙂 + hl-todo ; highlight todo-words + indent-guides ; highlighted indent columns + modeline ; snazzy, Atom-inspired modeline, plus API + nav-flash ; blink cursor line after big motions + (popup +defaults) ; tame sudden yet inevitable temporary windows + (treemacs +lsp) ; a project drawer, like neotree but cooler + unicode ; extended unicode support for various languages (vc-gutter +diff-hl +pretty) - window-select ; visually switch windows - workspaces ; tab emulation, persistence & separate workspaces - zen ; distraction-free coding or writing + window-select ; visually switch windows + workspaces ; tab emulation, persistence & separate workspaces + zen ; distraction-free coding or writing :editor - file-templates ; auto-snippets for empty files - fold ; (nigh) universal code folding - (format +onsave) ; automated prettiness + file-templates ; auto-snippets for empty files + fold ; (nigh) universal code folding + (format +onsave) ; automated prettiness lispy - rotate-text ; cycle region at point between text candidates - snippets ; my elves. They type so I don't have to - word-wrap ; soft wrapping with language-aware indent + rotate-text ; cycle region at point between text candidates + snippets ; my elves. They type so I don't have to + word-wrap ; soft wrapping with language-aware indent :emacs - (dired +icons) ; making dired pretty [functional] - electric ; smarter, keyword-based electric-indent - (ibuffer +icons) ; interactive buffer management - undo ; persistent, smarter undo for your inevitable mistakes - vc ; version-control and Emacs, sitting in a tree + (dired +icons) ; making dired pretty [functional] + electric ; smarter, keyword-based electric-indent + (ibuffer +icons) ; interactive buffer management + undo ; persistent, smarter undo for your inevitable mistakes + vc ; version-control and Emacs, sitting in a tree :term - vterm ; the best terminal emulation in Emacs + vterm ; the best terminal emulation in Emacs :checkers - (syntax +childframe) ; tasing you for every semicolon you forget - (spell +aspell +everywhere) ; tasing you for misspelling mispelling + (syntax +childframe) ; tasing you for every semicolon you forget + (spell +aspell +everywhere) ; tasing you for misspelling mispelling :tools - (debugger +lsp) ; stepping through code, to help you add bugs + (debugger +lsp) ; stepping through code, to help you add bugs direnv docker - editorconfig ; let someone else argue about tabs vs spaces - (eval +overlay) ; run code, run (also, repls) - lookup ; navigate your code and its documentation - lsp ; M-x vscode - (magit +forge) ; a git porcelain for Emacs - pdf ; pdf enhancements - rgb ; creating color strings + editorconfig ; let someone else argue about tabs vs spaces + (eval +overlay) ; run code, run (also, repls) + lookup ; navigate your code and its documentation + lsp ; M-x vscode + (magit +forge) ; a git porcelain for Emacs + pdf ; pdf enhancements + rgb ; creating color strings tree-sitter :os - (:if IS-MAC macos) ; improve compatibility with macOS + (:if IS-MAC macos) ; improve compatibility with macOS (tty +osc) :lang @@ -82,17 +82,18 @@ markdown nix (org +pandoc +present +roam2 +pomodoro) - rest ; Emacs as a REST client + rest ; Emacs as a REST client (rust +lsp) (sh +fish) yaml (scheme +chez) + (haskell +lsp) :email (mu4e +org) :app - (rss +org) ; emacs as an RSS reader + (rss +org) ; emacs as an RSS reader :config literate diff --git a/packages.el b/packages.el index f86da59..0672a0e 100644 --- a/packages.el +++ b/packages.el @@ -68,3 +68,7 @@ (package! websocket) (package! org-roam-ui) (package! edit-server) +(package! idris2-mode :recipe + (:host github + :repo "idris-community/idris2-mode" + :branch "main"))