diff --git a/contrib/lang/extra-langs/README.md b/contrib/lang/extra-langs/README.md index b4465cac8..582837ce1 100644 --- a/contrib/lang/extra-langs/README.md +++ b/contrib/lang/extra-langs/README.md @@ -3,11 +3,13 @@ Adds many more language modes for less common languages, some more niche than others. These include: -- Racket - Idris - OpenScad - Nix Expressions +- Nim - QML - YAML - Rust -- The Wolfram Language / Mathematica \ No newline at end of file +- The Wolfram Language / Mathematica + +**Note:** Racket has been moved to it's own layer: `racket` diff --git a/contrib/lang/extra-langs/packages.el b/contrib/lang/extra-langs/packages.el index 1d375215e..3fcc89a2f 100644 --- a/contrib/lang/extra-langs/packages.el +++ b/contrib/lang/extra-langs/packages.el @@ -6,7 +6,6 @@ nim-mode nix-mode qml-mode - racket-mode rust-mode scad-mode wolfram-mode @@ -49,26 +48,3 @@ (use-package wolfram-mode :defer t :interpreter "\\(Wolfram\\|Mathematica\\)Script\\( -script\\)?")) - -(defun extra-langs/init-racket-mode () - (use-package racket-mode - :defer t - :config - (progn - (use-package smartparens :config - (progn (add-to-list 'sp--lisp-modes 'racket-mode) - (when (fboundp 'sp-local-pair) (sp-local-pair 'racket-mode "`" nil :actions nil)))) - (sp-local-pair 'racket-mode "'" nil :actions nil) - (evil-leader/set-key-for-mode 'racket-mode - "ml" 'evil-lisp-state - "mt" 'racket-test - "mg" 'racket-visit-definition - "mhd" 'racket-doc) - ;; Bug exists in Racket company backend that opens docs in new window when - ;; company-quickhelp calls it. Note hook is appendended for proper ordering. - (when (configuration-layer/package-declaredp 'company-quickhelp) - (add-hook 'company-mode-hook - '(lambda () (when (equal major-mode 'racket-mode) (company-quickhelp-mode -1))) t)) - (add-hook 'racket-mode-hook - '(lambda () - (define-key racket-mode-map (kbd "H-r") 'racket-run)))))) diff --git a/contrib/lang/racket/README.md b/contrib/lang/racket/README.md new file mode 100644 index 000000000..b29c3b93c --- /dev/null +++ b/contrib/lang/racket/README.md @@ -0,0 +1,16 @@ +# Racket + +![logo_racket](img/racket.png) + +Adds support for the [Racket](http://racket-lang.org/) programming language. + +## Key Bindings + + Key Binding | Description +----------------------|------------------------------------------------------------ +SPC m r | Run current file and open REPL +SPC m l | Enter [Evil Lisp State](https://github.com/syl20bnr/evil-lisp-state) +SPC m t | Run tests +SPC m g | Visit definition +SPC m h d | Visit Documentation +H-r | Run current file and open REPL (`H` is hyper, *may* be bound to command on OSX) diff --git a/contrib/lang/racket/img/racket.png b/contrib/lang/racket/img/racket.png new file mode 100644 index 000000000..2aadac71b Binary files /dev/null and b/contrib/lang/racket/img/racket.png differ diff --git a/contrib/lang/racket/packages.el b/contrib/lang/racket/packages.el new file mode 100644 index 000000000..f290e94e8 --- /dev/null +++ b/contrib/lang/racket/packages.el @@ -0,0 +1,26 @@ +(defvar racket-packages + '(racket-mode)) + +(defun racket/init-racket-mode () + (use-package racket-mode + :defer t + :config + (progn + (use-package smartparens :config + (progn (add-to-list 'sp--lisp-modes 'racket-mode) + (when (fboundp 'sp-local-pair) (sp-local-pair 'racket-mode "`" nil :actions nil)))) + (sp-local-pair 'racket-mode "'" nil :actions nil) + (evil-leader/set-key-for-mode 'racket-mode + "ml" 'evil-lisp-state + "mt" 'racket-test + "mr" 'racket-run + "mg" 'racket-visit-definition + "mhd" 'racket-doc) + ;; Bug exists in Racket company backend that opens docs in new window when + ;; company-quickhelp calls it. Note hook is appendended for proper ordering. + (when (configuration-layer/package-declaredp 'company-quickhelp) + (add-hook 'company-mode-hook + '(lambda () (when (equal major-mode 'racket-mode) (company-quickhelp-mode -1))) t)) + (add-hook 'racket-mode-hook + '(lambda () + (define-key racket-mode-map (kbd "H-r") 'racket-run))))))