added languagetool spellchecking

This commit is contained in:
2026-03-25 02:47:20 +01:00
parent 5e46231fbc
commit 72e3ae5e5f
2 changed files with 52 additions and 10 deletions

View File

@@ -10,8 +10,8 @@
'(package-selected-packages '(package-selected-packages
'(cape company consult corfu-terminal dracula-theme eat '(cape company consult corfu-terminal dracula-theme eat
emacs-everywhere flycheck-languagetool hl-todo kind-icon emacs-everywhere flycheck-languagetool hl-todo kind-icon
magit marginalia multiple-cursors orderless paredit languagetool magit marginalia multiple-cursors orderless
rainbow-mode vertico)) paredit rainbow-mode vertico))
'(safe-local-variable-directories '("/home/mia/.emacs.d/"))) '(safe-local-variable-directories '("/home/mia/.emacs.d/")))
(custom-set-faces (custom-set-faces
;; custom-set-faces was added by Custom. ;; custom-set-faces was added by Custom.

58
init.el
View File

@@ -223,6 +223,8 @@
(add-hook 'after-init-hook 'rainbow-mode) (add-hook 'after-init-hook 'rainbow-mode)
;; TODO add fast rudimentary spell check
;; leaving this in for now, maybe i could add fast rudimentary spell checking and then use languagetool for slower more thorough spell checks
;; doesnt work yet? ;; doesnt work yet?
;; it should only do these when ispell is loaded ;; it should only do these when ispell is loaded
;; idk ;; idk
@@ -237,8 +239,9 @@
;; TODO do we need flycheck anymore?
(use-package flycheck :ensure t :defer t :hook after-init) ;; i don't think so?
;; (use-package flycheck :ensure t :defer t :hook after-init)
;; (use-package flycheck-languagetool ;; (use-package flycheck-languagetool
;; :ensure t ;; :ensure t
;; :hook (text-mode . flycheck-languagetool-setup) ;; :hook (text-mode . flycheck-languagetool-setup)
@@ -260,7 +263,7 @@
( "C->" . mc/mark-next-like-this) ( "C->" . mc/mark-next-like-this)
( "C-<" . mc/mark-previous-like-this) ( "C-<" . mc/mark-previous-like-this)
( "C-c C-<" . mc/mark-all-like-this) ( "C-c C-<" . mc/mark-all-like-this)
( "C-\"" . mc/skip-to-next-like-this) ( "C-^\"" . mc/skip-to-next-like-this)
( "C-:" . mc/skip-to-previous-like-this) ( "C-:" . mc/skip-to-previous-like-this)
) )
) )
@@ -299,11 +302,50 @@
; '(haskell-mode . ("haskell-language-server-wrapper" "--lsp"))) ; '(haskell-mode . ("haskell-language-server-wrapper" "--lsp")))
) )
(with-eval-after-load 'eglot ;; spell checking with languagetool, slow but thorough
(add-to-list 'eglot-server-programs ;; dowloaded:
'(text-mode . ("harper-ls" "--stdio")) ;; https://languagetool.org/download/ngram-data/ngrams-de-20150819.zip
'(markdown-mode . ("harper-ls" "--stdio")) ;; https://languagetool.org/download/ngram-data/ngrams-en-20150817.zip
)) ;; https://languagetool.org/download/LanguageTool-stable.zip
;; and put them in a directory like this
;; emacs-init-dir/.languagetool/contents of LanguageTool-stable.zip like languagetool-server
;; emacs-init-dir/.languagetool/contents of ngram.* like de or en
(use-package languagetool
:ensure t
:defer t
:commands (languagetool-check
languagetool-clear-suggestions
languagetool-correct-at-point
languagetool-correct-buffer
languagetool-set-language
languagetool-server-mode
languagetool-server-start
languagetool-server-stop)
:config (setq languagetool-java-arguments (list "-Dfile.encoding=UTF-8" (concat "--languagemodel " (concat user-emacs-directory ".languagetool/ngram-data")))
languagetool-console-command (concat user-emacs-directory (concat ".languagetool/languagetool-commandline.jar"))
languagetool-console-arguments (list (concat user-emacs-directory "--languagemodel") " .languagetool/ngram-data")
languagetool-server-command (concat user-emacs-directory (concat ".languagetool/languagetool-server.jar"))
languagetool-server-arguments (list (concat user-emacs-directory "--languageModel") " .languagetool/ngram-data")
)
)
;; TODO make languagetool languagte toggle function
;; defun my/languagetool-toggle-language
;; switch between auto, en, de
;; have it be auto or de by default and then switch either to en or to de
;; like auto -> de
;; or de -> en
;; or maybe just like that
;; first auto then de then en
;; TODO evaluate how i wanna do this
;; (with-eval-after-load 'eglot
;; (add-to-list 'eglot-server-programs
;; '(text-mode . ("harper-ls" "--stdio"))
;; '(markdown-mode . ("harper-ls" "--stdio"))
;; ))
;; flycheck told me to do this: ;; flycheck told me to do this:
(provide 'init) (provide 'init)