Add support for parinfer-rust-mode (#1)
This commit adds support for the module flag +rust, which will use parinfer-rust-mode instead of parinfer-mode. Parinfer-rust-mode makes use of an external library named parinfer-rust to do the heavy lifting. As such, --with-modules must be enabled.
This commit is contained in:
parent
3f4cc77d2a
commit
ec747395c6
3 changed files with 53 additions and 25 deletions
|
@ -17,7 +17,9 @@ https://raw.githubusercontent.com/DogLooksGood/parinfer-mode/a7c041454e05ec2b883
|
||||||
More information can be found about it [[https://shaunlebron.github.io/parinfer/][in the project's documentation]].
|
More information can be found about it [[https://shaunlebron.github.io/parinfer/][in the project's documentation]].
|
||||||
|
|
||||||
** Module Flags
|
** Module Flags
|
||||||
This module provides no flags.
|
+ =+rust= Use [[github:justinbarclay/parinfer-rust-mode][parinfer-rust-mode]] instead of the now deprecated [[github:DogLooksGood/parinfer-mode][parinfer-mode]].
|
||||||
|
This depends on Emacs being compiled with the option `--with-modules`. The
|
||||||
|
pre-built library is only available for Linux, Windows and MacOS.
|
||||||
|
|
||||||
** Packages
|
** Packages
|
||||||
+ [[https://github.com/DogLooksGood/parinfer-mode][parinfer]]
|
+ [[https://github.com/DogLooksGood/parinfer-mode][parinfer]]
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
;;; editor/parinfer/config.el -*- lexical-binding: t; -*-
|
;;; editor/parinfer/config.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
(if (not (featurep! +rust))
|
||||||
(use-package! parinfer
|
(use-package! parinfer
|
||||||
:hook ((emacs-lisp-mode
|
:hook ((emacs-lisp-mode
|
||||||
clojure-mode
|
clojure-mode
|
||||||
|
@ -22,3 +23,26 @@
|
||||||
:i "<backtab>" #'parinfer-smart-tab:dwim-left
|
:i "<backtab>" #'parinfer-smart-tab:dwim-left
|
||||||
:localleader
|
:localleader
|
||||||
:desc "Toggle parinfer-mode" "m" #'parinfer-toggle-mode))
|
:desc "Toggle parinfer-mode" "m" #'parinfer-toggle-mode))
|
||||||
|
(defvar parinfer-rust--doom-lib-name (cond ((eq system-type 'darwin)
|
||||||
|
"parinfer-rust-darwin.so")
|
||||||
|
((eq system-type 'gnu/linux)
|
||||||
|
"parinfer-rust-linux.so")
|
||||||
|
((eq system-type 'windows-nt)
|
||||||
|
"parinfer-rust-windows.dll")))
|
||||||
|
(use-package! parinfer-rust-mode
|
||||||
|
:hook ((emacs-lisp-mode
|
||||||
|
clojure-mode
|
||||||
|
scheme-mode
|
||||||
|
lisp-mode
|
||||||
|
racket-mode
|
||||||
|
hy-mode) . parinfer-rust-mode)
|
||||||
|
:init
|
||||||
|
(setq! parinfer-rust-library (concat user-emacs-directory
|
||||||
|
".local/etc/parinfer-rust/"
|
||||||
|
parinfer-rust--doom-lib-name))
|
||||||
|
:config
|
||||||
|
(map! :map parinfer-rust-mode-map
|
||||||
|
:localleader
|
||||||
|
:desc "Switch parinfer-rust-mode" "m" #'parinfer-rust-switch-mode
|
||||||
|
:desc "Temporarily disable parinfer-rust-mode" "M"
|
||||||
|
#'parinfer-rust-switch-mode)))
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; editor/parinfer/packages.el
|
;;; editor/parinfer/packages.el
|
||||||
|
|
||||||
(when (featurep! :editor evil)
|
(when (and (not (featurep! +rust)) (featurep! :editor evil))
|
||||||
;; Parinfer uses `evil-define-key' without loading evil, so if evil is
|
;; Parinfer uses `evil-define-key' without loading evil, so if evil is
|
||||||
;; installed *after* parinfer, parinfer will throw up void-function errors.
|
;; installed *after* parinfer, parinfer will throw up void-function errors.
|
||||||
;; because evil-define-key (a macro) wasn't expanded at compile-time. So we
|
;; because evil-define-key (a macro) wasn't expanded at compile-time. So we
|
||||||
|
@ -11,4 +11,6 @@
|
||||||
;; separate session:
|
;; separate session:
|
||||||
(autoload 'evil-define-key "evil-core" nil nil 'macro))
|
(autoload 'evil-define-key "evil-core" nil nil 'macro))
|
||||||
|
|
||||||
(package! parinfer :pin "8659c99a9475ee34af683fdf8f272728c6bebb3a")
|
(if (featurep! +rust)
|
||||||
|
(package! parinfer-rust-mode :pin "c825606e6aca4a2ed18c0af321df5f36a3c8c774")
|
||||||
|
(package! parinfer :pin "8659c99a9475ee34af683fdf8f272728c6bebb3a"))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue