wip
This commit is contained in:
396
home.org
396
home.org
@@ -858,7 +858,10 @@ its own devil-mode-only repeat maps that don't interfere when using normal modif
|
||||
("z" . repeat))
|
||||
(bind-keys ("<escape>" . (lambda () (interactive) (god-mode-all 1))))
|
||||
(defun my-god-mode-update-cursor-type ()
|
||||
(setq cursor-type (if (or god-local-mode buffer-read-only) 'box 'bar)))
|
||||
(setq cursor-type (cond
|
||||
(org-present-mode nil)
|
||||
((or god-local-mode buffer-read-only) 'box)
|
||||
(t 'bar))))
|
||||
|
||||
(add-hook 'post-command-hook #'my-god-mode-update-cursor-type)
|
||||
(which-key-enable-god-mode-support))
|
||||
@@ -968,191 +971,203 @@ available? It seems to work for now anyway...
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC elisp :noweb-ref emacs_config
|
||||
(use-package nix-mode
|
||||
:mode "\\.nix\\'")
|
||||
(use-package nix-mode
|
||||
:mode "\\.nix\\'")
|
||||
|
||||
(use-package nix-flake
|
||||
:bind ("C-x p n" . project-nix-flake)
|
||||
:config
|
||||
(defun project-nix-flake ()
|
||||
(interactive)
|
||||
(nix-flake (project-root (project-current t)))))
|
||||
|
||||
(use-package lua-mode
|
||||
:mode "\\.lua\\'")
|
||||
|
||||
(use-package jenkinsfile-mode
|
||||
:mode "\\.jenkinsfile\\'")
|
||||
|
||||
(setq major-mode-remap-alist '((rust-mode . rust-mode)))
|
||||
|
||||
(use-package rust-mode
|
||||
:init (setq rust-mode-treesitter-derive t))
|
||||
|
||||
(defun yaml-validate ()
|
||||
(use-package nix-flake
|
||||
:bind ("C-x p n" . project-nix-flake)
|
||||
:config
|
||||
(defun project-nix-flake ()
|
||||
(interactive)
|
||||
(compile (concat "yamllint -d '{extends: default, rules: {indentation: {indent-sequences: false}, braces: {max-spaces-inside: 1}}}' " (buffer-file-name)) t))
|
||||
(nix-flake (project-root (project-current t)))))
|
||||
|
||||
(use-package yaml-ts-mode
|
||||
:mode "\\.yaml\\'")
|
||||
(use-package lua-mode
|
||||
:mode "\\.lua\\'")
|
||||
|
||||
(use-package yaml-pro
|
||||
:hook (yaml-ts-mode . yaml-pro-ts-mode))
|
||||
(use-package jenkinsfile-mode
|
||||
:mode "\\.jenkinsfile\\'")
|
||||
|
||||
(use-package sly
|
||||
:hook lisp-mode-hook
|
||||
:custom
|
||||
(inferior-lisp-program "sbcl"))
|
||||
(setq major-mode-remap-alist '((rust-mode . rust-mode)))
|
||||
|
||||
(use-package sly-macrostep
|
||||
:defer t
|
||||
:after sly
|
||||
:init
|
||||
(add-to-list 'sly-contribs 'sly-macrostep))
|
||||
(use-package rust-mode
|
||||
:init (setq rust-mode-treesitter-derive t))
|
||||
|
||||
(use-package consult-eglot
|
||||
:commands
|
||||
consult-eglot-symbols)
|
||||
(defun yaml-validate ()
|
||||
(interactive)
|
||||
(compile (concat "yamllint -d '{extends: default, rules: {indentation: {indent-sequences: false}, braces: {max-spaces-inside: 1}}}' " (buffer-file-name)) t))
|
||||
|
||||
(use-package typescript-ts-mode
|
||||
:mode "\\.ts\\'" ("\\.tsx\\'" . tsx-ts-mode)
|
||||
:custom
|
||||
(typescript-ts-mode-indent-offset 4)
|
||||
(defun tsx-ts-mode--indent-compatibility-b893426 ()
|
||||
"Indent rules helper, to handle different releases of tree-sitter-tsx.
|
||||
Check if a node type is available, then return the right indent rules."
|
||||
;; handle https://github.com/tree-sitter/tree-sitter-typescript/commit/b893426b82492e59388a326b824a346d829487e8
|
||||
(condition-case nil
|
||||
(progn (treesit-query-capture 'tsx '((jsx_fragment) @capture))
|
||||
`(((match "<" "jsx_fragment") parent 0)
|
||||
((parent-is "jsx_fragment") parent typescript-ts-mode-indent-offset)))
|
||||
(treesit-query-error
|
||||
`(((match "<" "jsx_text") parent 0)
|
||||
((parent-is "jsx_text") grand-parent typescript-ts-mode-indent-offset))))))
|
||||
(use-package yaml-ts-mode
|
||||
:mode "\\.yaml\\'")
|
||||
|
||||
(use-package rust-ts-mode
|
||||
:mode "\\.rs\\'"
|
||||
:config
|
||||
(bind-keys :map rust-ts-mode-map
|
||||
("C-c u" . string-inflection-rust-style-cycle)))
|
||||
(use-package yaml-pro
|
||||
:hook (yaml-ts-mode . yaml-pro-ts-mode))
|
||||
|
||||
(use-package java-ts-mode
|
||||
:mode "\\.java\\'"
|
||||
:config
|
||||
(bind-keys :map java-ts-mode-map
|
||||
("C-c u" . string-inflection-java-style-cycle)))
|
||||
(use-package sly
|
||||
:hook lisp-mode-hook
|
||||
:custom
|
||||
(inferior-lisp-program "sbcl"))
|
||||
|
||||
(use-package sql-indent
|
||||
:hook (sql-mode-hook . sqlind-minor-mode))
|
||||
(use-package sly-macrostep
|
||||
:defer t
|
||||
:after sly
|
||||
:init
|
||||
(add-to-list 'sly-contribs 'sly-macrostep))
|
||||
|
||||
(use-package haskell-ts-mode
|
||||
:mode "\\.hs\\'"
|
||||
:custom (haskell-ts-use-indent tc))
|
||||
(use-package consult-eglot
|
||||
:commands
|
||||
consult-eglot-symbols)
|
||||
|
||||
(use-package flymake
|
||||
:bind
|
||||
(:map prog-mode-map
|
||||
("C-c D" . flymake-show-project-diagnostics)
|
||||
("M-n" . flymake-goto-next-error)
|
||||
("M-p" . flymake-goto-prev-error)))
|
||||
(use-package typescript-ts-mode
|
||||
:mode "\\.ts\\'" ("\\.tsx\\'" . tsx-ts-mode)
|
||||
:custom
|
||||
(typescript-ts-mode-indent-offset 4)
|
||||
(defun tsx-ts-mode--indent-compatibility-b893426 ()
|
||||
"Indent rules helper, to handle different releases of tree-sitter-tsx.
|
||||
Check if a node type is available, then return the right indent rules."
|
||||
;; handle https://github.com/tree-sitter/tree-sitter-typescript/commit/b893426b82492e59388a326b824a346d829487e8
|
||||
(condition-case nil
|
||||
(progn (treesit-query-capture 'tsx '((jsx_fragment) @capture))
|
||||
`(((match "<" "jsx_fragment") parent 0)
|
||||
((parent-is "jsx_fragment") parent typescript-ts-mode-indent-offset)))
|
||||
(treesit-query-error
|
||||
`(((match "<" "jsx_text") parent 0)
|
||||
((parent-is "jsx_text") grand-parent typescript-ts-mode-indent-offset))))))
|
||||
|
||||
(use-package eglot
|
||||
:commands eglot
|
||||
:custom
|
||||
(eglot-ignored-server-capabilities '(:inlayHintProvider))
|
||||
:config
|
||||
(bind-keys :map eglot-mode-map
|
||||
("C-c A" . eglot-code-actions)
|
||||
("C-c R" . eglot-rename)
|
||||
("C-c I" . eglot-find-implementation))
|
||||
|
||||
(add-hook 'eglot-managed-mode-hook (lambda () (eglot-inlay-hints-mode -1)) nil t))
|
||||
(use-package rust-ts-mode
|
||||
:mode "\\.rs\\'"
|
||||
:config
|
||||
(bind-keys :map rust-ts-mode-map
|
||||
("C-c u" . string-inflection-rust-style-cycle)))
|
||||
|
||||
(use-package lispy
|
||||
:hook (emacs-lisp-mode lisp-mode)
|
||||
:init (setq lispy-compat '(god-mode edebug))
|
||||
:config
|
||||
(bind-keys :map lispy-mode-map
|
||||
("i" . (lambda ()
|
||||
(interactive)
|
||||
(if god-global-mode
|
||||
(god-mode-all -1)
|
||||
(special-lispy-tab))))))
|
||||
(use-package java-ts-mode
|
||||
:mode "\\.java\\'"
|
||||
:config
|
||||
(bind-keys :map java-ts-mode-map
|
||||
("C-c u" . string-inflection-java-style-cycle))
|
||||
(push `((n-p-gp nil "block" "lambda_expression") parent-bol java-ts-mode-indent-offset)
|
||||
(cdar java-ts-mode--indent-rules))
|
||||
(push `((n-p-gp "}" "block" "lambda_expression") parent-bol 0)
|
||||
(cdar java-ts-mode--indent-rules)))
|
||||
|
||||
(use-package smartparens
|
||||
:hook
|
||||
emacs-lisp-mode
|
||||
common-lisp-mode
|
||||
:config
|
||||
(add-to-list 'sp-lisp-modes 'sly-mrepl-mode)
|
||||
(require 'smartparens-config)
|
||||
(setq sp-highlight-pair-overlay nil
|
||||
sp-highlight-wrap-overlay nil
|
||||
sp-highlight-wrap-tag-overlay nil))
|
||||
(use-package sql-indent
|
||||
:hook (sql-mode-hook . sqlind-minor-mode))
|
||||
|
||||
(setq-default indent-tabs-mode nil)
|
||||
(setq-default tab-width 4)
|
||||
(global-tree-sitter-mode 1)
|
||||
(setq-default fill-column 100)
|
||||
(defun jf-init-fill-column ()
|
||||
(display-fill-column-indicator-mode 1))
|
||||
(use-package haskell-ts-mode
|
||||
:mode "\\.hs\\'"
|
||||
:custom (haskell-ts-use-indent tc))
|
||||
|
||||
(defvar jf/class-name-to-file-search-path (list "src/main/java" "src/test/java"))
|
||||
(use-package flymake
|
||||
:bind
|
||||
(:map prog-mode-map
|
||||
("C-c D" . flymake-show-project-diagnostics)
|
||||
("M-n" . flymake-goto-next-error)
|
||||
("M-p" . flymake-goto-prev-error)))
|
||||
|
||||
(defun jf/class-name-to-file (class-name)
|
||||
(let ((root (project-root (project-current t)))
|
||||
(fragment (format "%s.java" (replace-regexp-in-string "\\." "/" class-name)))
|
||||
(result))
|
||||
(dolist (p jf/class-name-to-file-search-path result)
|
||||
(unless result
|
||||
(let ((path (format "%s/%s" p fragment)))
|
||||
(when (file-exists-p (concat root path))
|
||||
(setq result path)))))))
|
||||
(use-package eglot
|
||||
:commands eglot
|
||||
:custom
|
||||
(eglot-ignored-server-capabilities '(:inlayHintProvider))
|
||||
:config
|
||||
(bind-keys :map eglot-mode-map
|
||||
("C-c A" . eglot-code-actions)
|
||||
("C-c R" . eglot-rename)
|
||||
("C-c I" . eglot-find-implementation))
|
||||
|
||||
(add-hook 'eglot-managed-mode-hook (lambda () (eglot-inlay-hints-mode -1)) nil t))
|
||||
|
||||
(defun jf/compile-class-to-file ()
|
||||
(jf/class-name-to-file (concat (match-string 1) (match-string 2))))
|
||||
(use-package lispy
|
||||
:hook (emacs-lisp-mode lisp-mode)
|
||||
:init (setq lispy-compat '(god-mode edebug))
|
||||
:config
|
||||
(bind-keys :map lispy-mode-map
|
||||
("i" . (lambda ()
|
||||
(interactive)
|
||||
(if god-global-mode
|
||||
(god-mode-all -1)
|
||||
(special-lispy-tab))))))
|
||||
|
||||
;(add-to-list 'compilation-error-regexp-alist-alist
|
||||
; '(java-stack-trace .
|
||||
; ("^[[:space:]]*at \\(\\(?:[[:lower:]]+\\.\\)+\\)[^(]+(\\([[:alnum:]]+\\)\\.java:\\([[:digit:]]+\\))"
|
||||
; jf/compile-class-to-file 3)))
|
||||
;(add-to-list 'compilation-error-regexp-alist 'java-stack-trace)
|
||||
(use-package smartparens
|
||||
:hook
|
||||
emacs-lisp-mode
|
||||
common-lisp-mode
|
||||
:config
|
||||
(add-to-list 'sp-lisp-modes 'sly-mrepl-mode)
|
||||
(require 'smartparens-config)
|
||||
(setq sp-highlight-pair-overlay nil
|
||||
sp-highlight-wrap-overlay nil
|
||||
sp-highlight-wrap-tag-overlay nil))
|
||||
|
||||
(add-hook 'prog-mode-hook 'jf-init-fill-column)
|
||||
(add-hook 'java-mode-hook (lambda () (c-set-offset 'arglist-intro '+)))
|
||||
(setq-default indent-tabs-mode nil)
|
||||
(setq-default tab-width 4)
|
||||
(global-tree-sitter-mode 1)
|
||||
(setq-default fill-column 100)
|
||||
(defun jf-init-fill-column ()
|
||||
(display-fill-column-indicator-mode 1))
|
||||
|
||||
(dolist (hook
|
||||
(list 'grep-mode-hook
|
||||
'flymake-project-diagnostics-mode-hook
|
||||
'xref--xref-buffer-mode-hook
|
||||
'embark-collect-mode-hook
|
||||
'compilation-mode-hook
|
||||
'sly-mrepl-mode-hook
|
||||
'eglot-list-connections-mode-hook))
|
||||
(add-hook hook 'tab-line-mode))
|
||||
(defvar jf/class-name-to-file-search-path (list "src/main/java" "src/test/java"))
|
||||
|
||||
(let ((bottom-window-params '((side . bottom)
|
||||
(slot . 1)
|
||||
(window-height . 0.33)
|
||||
(window-parameters (no-delete-other-windows . t))))
|
||||
(right-window-params '((side . right)
|
||||
(window-width . 0.5)
|
||||
(window-parameters (no-delete-other-windows . t)))))
|
||||
(setopt display-buffer-alist
|
||||
(mapcar (lambda (buffer) `(,buffer
|
||||
(display-buffer-reuse-window display-buffer-in-side-window)
|
||||
,@bottom-window-params))
|
||||
(list
|
||||
"\\*Flymake diagnostics *"
|
||||
"\\*Embark Export *"
|
||||
"\\*Embark Collect *"
|
||||
"\\*xref*"
|
||||
"\\*compilation\\*"
|
||||
"\\*sly-mrepl *"
|
||||
"\\*Messages\\*"
|
||||
"\\*EGLOT connections\\*"))))
|
||||
(defun jf/class-name-to-file (class-name)
|
||||
(let ((root (project-root (project-current t)))
|
||||
(fragment (format "%s.java" (replace-regexp-in-string "\\." "/" class-name)))
|
||||
(result))
|
||||
(dolist (p jf/class-name-to-file-search-path result)
|
||||
(unless result
|
||||
(let ((path (format "%s/%s" p fragment)))
|
||||
(when (file-exists-p (concat root path))
|
||||
(setq result path)))))))
|
||||
|
||||
(setq ediff-split-window-function 'split-window-horizontally)
|
||||
(defun jf/compile-class-to-file ()
|
||||
(jf/class-name-to-file (concat (match-string 1) (match-string 2))))
|
||||
|
||||
;(add-to-list 'compilation-error-regexp-alist-alist
|
||||
; '(java-stack-trace .
|
||||
; ("^[[:space:]]*at \\(\\(?:[[:lower:]]+\\.\\)+\\)[^(]+(\\([[:alnum:]]+\\)\\.java:\\([[:digit:]]+\\))"
|
||||
; jf/compile-class-to-file 3)))
|
||||
;(add-to-list 'compilation-error-regexp-alist 'java-stack-trace)
|
||||
|
||||
(add-hook 'prog-mode-hook 'jf-init-fill-column)
|
||||
(add-hook 'java-mode-hook (lambda () (c-set-offset 'arglist-intro '+)))
|
||||
|
||||
(dolist (hook
|
||||
(list 'grep-mode-hook
|
||||
'flymake-project-diagnostics-mode-hook
|
||||
'xref--xref-buffer-mode-hook
|
||||
'embark-collect-mode-hook
|
||||
'compilation-mode-hook
|
||||
'sly-mrepl-mode-hook
|
||||
'eglot-list-connections-mode-hook))
|
||||
(add-hook hook 'tab-line-mode))
|
||||
|
||||
(let ((bottom-window-params '((side . bottom)
|
||||
(slot . 1)
|
||||
(window-height . 0.33)
|
||||
(window-parameters (no-delete-other-windows . t))))
|
||||
(right-window-params '((side . right)
|
||||
(window-width . 0.5)
|
||||
(window-parameters (no-delete-other-windows . t)))))
|
||||
(setopt display-buffer-alist
|
||||
(append
|
||||
(mapcar (lambda (buffer) `(,buffer
|
||||
(display-buffer-reuse-window display-buffer-in-side-window)
|
||||
,@bottom-window-params))
|
||||
(list
|
||||
"\\*Flymake diagnostics *"
|
||||
"\\*Embark Export *"
|
||||
"\\*Embark Collect *"
|
||||
"\\*xref*"
|
||||
"\\*compilation\\*"
|
||||
"\\*sly-mrepl *"
|
||||
"\\*Messages\\*"
|
||||
"\\*EGLOT connections\\*"))
|
||||
(mapcar (lambda (buffer) `(,buffer
|
||||
(display-buffer-reuse-window display-buffer-in-side-window)
|
||||
,@right-window-params))
|
||||
(list
|
||||
"magit: *"
|
||||
"magit-revision: *"
|
||||
"\\*eldoc\\*")))))
|
||||
|
||||
(setq ediff-split-window-function 'split-window-horizontally)
|
||||
#+END_SRC
|
||||
|
||||
** Envrc
|
||||
@@ -1327,8 +1342,11 @@ available? It seems to work for now anyway...
|
||||
|
||||
#+BEGIN_SRC nix :noweb-ref emacs_packages
|
||||
org-modern
|
||||
org-present
|
||||
org-roam
|
||||
ox-slack
|
||||
verb
|
||||
visual-fill-column
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC elisp :noweb-ref emacs_config
|
||||
@@ -1380,6 +1398,62 @@ available? It seems to work for now anyway...
|
||||
(set-face-attribute 'org-level-7 nil :font "Iosevka Aile")
|
||||
(set-face-attribute 'org-level-8 nil :font "Iosevka Aile"))
|
||||
|
||||
(use-package org-present
|
||||
:commands (org-present)
|
||||
:config
|
||||
(defun my/org-present-start ()
|
||||
(setq-local my/org-present-face-remapping-cookies nil)
|
||||
;; Tweak font sizes
|
||||
(dolist (face '((default :height 2.0)
|
||||
(header-line :height 4.0 :background "#303446")
|
||||
(org-document-title :height 1.75)
|
||||
(org-code :height 2.0)
|
||||
(org-verbatim :height 2.0)
|
||||
(org-block :height 1.25)
|
||||
(org-block-begin-line :height 0.7)
|
||||
(org-level-1 :height 3.0)
|
||||
(org-level-2 :height 3.0)
|
||||
(org-level-3 :height 3.0)
|
||||
(org-level-4 :height 3.0)
|
||||
(org-level-5 :height 3.0)
|
||||
(org-level-6 :height 3.0)
|
||||
(org-level-7 :height 3.0)
|
||||
(org-level-8 :height 3.0)))
|
||||
(push (apply #'face-remap-add-relative face) my/org-present-face-remapping-cookies))
|
||||
|
||||
;; Set a blank header line string to create blank space at the top
|
||||
(setq header-line-format " ")
|
||||
|
||||
;; Display inline images automatically
|
||||
(org-display-inline-images)
|
||||
(org-present-hide-cursor)
|
||||
|
||||
;; Center the presentation and wrap lines
|
||||
(visual-fill-column-mode 1)
|
||||
(setq visual-fill-column-center-text t)
|
||||
;; (visual-line-mode 1)
|
||||
)
|
||||
|
||||
(defun my/org-present-end ()
|
||||
;; Reset font customizations
|
||||
(dolist (cookie my/org-present-face-remapping-cookies)
|
||||
(face-remap-remove-relative cookie))
|
||||
|
||||
;; Clear the header line string so that it isn't displayed
|
||||
(setq header-line-format nil)
|
||||
|
||||
;; Stop displaying inline images
|
||||
(org-remove-inline-images)
|
||||
(org-present-show-cursor)
|
||||
|
||||
;; Stop centering the document
|
||||
(visual-fill-column-mode 0)
|
||||
;; (visual-line-mode 0)
|
||||
)
|
||||
|
||||
(add-hook 'org-present-mode-hook 'my/org-present-start)
|
||||
(add-hook 'org-present-mode-quit-hook 'my/org-present-end))
|
||||
|
||||
(use-package org-roam
|
||||
:bind (("C-c n l" . org-roam-buffer-toggle)
|
||||
("C-c n f" . org-roam-node-find)
|
||||
|
||||
Reference in New Issue
Block a user