Move erlang to LSP
This commit is contained in:
parent
e586cda3c1
commit
617aa409b5
9 changed files with 90 additions and 81 deletions
14
01mac.el
14
01mac.el
|
|
@ -7,6 +7,7 @@
|
||||||
(setq gc-cons-threshold 50000000)
|
(setq gc-cons-threshold 50000000)
|
||||||
|
|
||||||
;;;;;;;; Other optimizations ;;;;;;;;;;;;;;;;;
|
;;;;;;;; Other optimizations ;;;;;;;;;;;;;;;;;
|
||||||
|
;; Stolen from Doom Emacs.
|
||||||
|
|
||||||
;; Update emacs less often
|
;; Update emacs less often
|
||||||
(setq idle-update-delay 1.0)
|
(setq idle-update-delay 1.0)
|
||||||
|
|
@ -161,21 +162,16 @@
|
||||||
;;;;;;;;;;;;;;;;;;;;;; Shell stuff ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;; Shell stuff ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
|
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
|
||||||
|
|
||||||
|
;; Disable warning related to PATH on startup
|
||||||
|
(defvar exec-path-from-shell-check-startup-files nil)
|
||||||
|
|
||||||
;; Allow to execute path from shell
|
;; Allow to execute path from shell
|
||||||
(use-package exec-path-from-shell
|
(use-package exec-path-from-shell
|
||||||
:if (memq window-system '(mac ns))
|
:if (memq window-system '(mac ns))
|
||||||
:ensure t
|
:ensure t
|
||||||
:config (add-to-list 'exec-path "/usr/local/bin")
|
:config (add-to-list 'exec-path "/opt/local/bin")
|
||||||
(exec-path-from-shell-initialize))
|
(exec-path-from-shell-initialize))
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;; Font configuration ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
(defun set-font-size (size)
|
|
||||||
"Set font SIZE to X px."
|
|
||||||
(interactive "NNew font size: ")
|
|
||||||
(set-face-attribute 'default nil :font (format "Hasklig %d" size))
|
|
||||||
(set-face-attribute 'mode-line nil :font (format "Hasklig %d" size)))
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;; Window configuration ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;; Window configuration ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Always start in fullscreen
|
;; Always start in fullscreen
|
||||||
(defun toggle-fullscreen ()
|
(defun toggle-fullscreen ()
|
||||||
|
|
|
||||||
|
|
@ -74,5 +74,10 @@
|
||||||
:defer t
|
:defer t
|
||||||
:config (global-column-enforce-mode t))
|
:config (global-column-enforce-mode t))
|
||||||
|
|
||||||
|
;; Vim-like regex replace with preview in buffer.
|
||||||
|
(use-package visual-regexp
|
||||||
|
:ensure t
|
||||||
|
:defer t)
|
||||||
|
|
||||||
(provide '05prog-mode)
|
(provide '05prog-mode)
|
||||||
;;; 05prog-mode ends here
|
;;; 05prog-mode ends here
|
||||||
|
|
|
||||||
71
init.el
71
init.el
|
|
@ -9,42 +9,15 @@
|
||||||
(package-initialize)
|
(package-initialize)
|
||||||
|
|
||||||
;; fetch the list of packages available
|
;; fetch the list of packages available
|
||||||
(unless package-archive-contents
|
(unless package-archive-contents (package-refresh-contents))
|
||||||
(package-refresh-contents))
|
|
||||||
|
|
||||||
;; list the packages you want
|
;; install use-package, the workhorse of configuration
|
||||||
(defvar package-list '(
|
(unless (package-installed-p 'use-package)
|
||||||
use-package
|
(package-install 'use-package))
|
||||||
visual-regexp ;; Regexp replacement with preview in
|
|
||||||
;; current buffer.
|
|
||||||
|
|
||||||
;; Themes
|
|
||||||
smart-mode-line
|
|
||||||
base16-theme
|
|
||||||
flatui-theme
|
|
||||||
planet-theme
|
|
||||||
|
|
||||||
;; Infrastructure files
|
|
||||||
dockerfile-mode
|
|
||||||
terraform-mode
|
|
||||||
ansible
|
|
||||||
nginx-mode
|
|
||||||
|
|
||||||
;; Text files
|
|
||||||
yaml-mode
|
|
||||||
markdown-mode
|
|
||||||
gitignore-mode
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
;; install the missing packages
|
|
||||||
(dolist (package package-list)
|
|
||||||
(unless (package-installed-p package)
|
|
||||||
(package-install package)))
|
|
||||||
|
|
||||||
(require 'use-package)
|
(require 'use-package)
|
||||||
|
|
||||||
;; Additional files
|
;; General configuration files.
|
||||||
(require '01mac "$HOME/.emacs.d/01mac.el")
|
(require '01mac "$HOME/.emacs.d/01mac.el")
|
||||||
(require '05macros "$HOME/.emacs.d/05macros.el")
|
(require '05macros "$HOME/.emacs.d/05macros.el")
|
||||||
(require '05ivy "$HOME/.emacs.d/05ivy.el")
|
(require '05ivy "$HOME/.emacs.d/05ivy.el")
|
||||||
|
|
@ -60,33 +33,31 @@
|
||||||
(require '05lsp "$HOME/.emacs.d/05lsp.el")
|
(require '05lsp "$HOME/.emacs.d/05lsp.el")
|
||||||
|
|
||||||
;; Themes
|
;; Themes
|
||||||
(load "$HOME/.emacs.d/themes/themes.el" 'f 't)
|
(require '10themes "$HOME/.emacs.d/themes/themes.el")
|
||||||
|
|
||||||
;; Actual supported languages
|
;; Actual supported languages and file syntax.
|
||||||
(load "$HOME/.emacs.d/languages/elisp.el" 'f 't)
|
(require 'languages/elisp "$HOME/.emacs.d/languages/elisp.el")
|
||||||
(load "$HOME/.emacs.d/languages/ruby.el" 'f 't)
|
(require 'languages/ruby "$HOME/.emacs.d/languages/ruby.el")
|
||||||
(load "$HOME/.emacs.d/languages/web.el" 'f 't)
|
(require 'languages/web "$HOME/.emacs.d/languages/web.el")
|
||||||
(load "$HOME/.emacs.d/languages/javascript.el" 'f 't)
|
(require 'languages/javascript "$HOME/.emacs.d/languages/javascript.el")
|
||||||
(load "$HOME/.emacs.d/languages/elixir.el" 'f 't)
|
(require 'languages/elixir "$HOME/.emacs.d/languages/elixir.el")
|
||||||
(load "$HOME/.emacs.d/languages/erlang.el" 'f 't)
|
(require 'languages/erlang "$HOME/.emacs.d/languages/erlang.el")
|
||||||
(load "$HOME/.emacs.d/languages/sh.el" 'f 't)
|
(require 'languages/sh "$HOME/.emacs.d/languages/sh.el")
|
||||||
(load "$HOME/.emacs.d/languages/rust.el" 'f 't)
|
(require 'languages/rust "$HOME/.emacs.d/languages/rust.el")
|
||||||
(load "$HOME/.emacs.d/languages/clang.el" 'f 't)
|
(require 'languages/clang "$HOME/.emacs.d/languages/clang.el")
|
||||||
(load "$HOME/.emacs.d/languages/clojure.el" 'f 't)
|
(require 'languages/clojure "$HOME/.emacs.d/languages/clojure.el")
|
||||||
(load "$HOME/.emacs.d/languages/ocaml.el" 'f 't)
|
(require 'languages/ocaml "$HOME/.emacs.d/languages/ocaml.el")
|
||||||
(load "$HOME/.emacs.d/languages/markdown.el" 'f 't)
|
(require 'languages/markdown "$HOME/.emacs.d/languages/markdown.el")
|
||||||
|
(require 'languages/other "$HOME/.emacs.d/languages/other.el")
|
||||||
|
|
||||||
(custom-set-variables
|
(custom-set-variables
|
||||||
;; custom-set-variables was added by Custom.
|
;; custom-set-variables was added by Custom.
|
||||||
;; If you edit it by hand, you could mess it up, so be careful.
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
;; Your init file should contain only one such instance.
|
;; Your init file should contain only one such instance.
|
||||||
;; If there is more than one, they won't work right.
|
;; If there is more than one, they won't work right.
|
||||||
'(custom-safe-themes
|
|
||||||
(quote
|
|
||||||
("1f38fb71e55e5ec5f14a39d03ca7d7a416123d3f0847745c7bade053ca58f043" "fec45178b55ad0258c5f68f61c9c8fd1a47d73b08fb7a51c15558d42c376083d" "60e09d2e58343186a59d9ed52a9b13d822a174b33f20bdc1d4abb86e6b17f45b" "85e6bb2425cbfeed2f2b367246ad11a62fb0f6d525c157038a0d0eaaabc1bfee" "3380a2766cf0590d50d6366c5a91e976bdc3c413df963a0ab9952314b4577299" "cea3ec09c821b7eaf235882e6555c3ffa2fd23de92459751e18f26ad035d2142" "8ffdc8c66ceeaf7921f4510a70d808f01b303e6b4d177c947b442e80d4228678" "b0c5c6cc59d530d3f6fbcfa67801993669ce062dda1435014f74cafac7d86246" "ad16a1bf1fd86bfbedae4b32c269b19f8d20d416bd52a87cd50e355bf13c2f23" "d9dab332207600e49400d798ed05f38372ec32132b3f7d2ba697e59088021555" "bc4c89a7b91cfbd3e28b2a8e9e6750079a985237b960384f158515d32c7f0490" "99c86852decaeb0c6f51ce8bd46e4906a4f28ab4c5b201bdc3fdf85b24f88518" "a85e40c7d2df4a5e993742929dfd903899b66a667547f740872797198778d7b5" default)))
|
|
||||||
'(package-selected-packages
|
'(package-selected-packages
|
||||||
(quote
|
(quote
|
||||||
(lsp-ui lsp tuareg merlin reason-mode deft buffer-move clj-refactor planet-theme cider clojure-mode erlang rspec-mode dap-mode lsp-mode nginx-mode gitignore-mode js2-mode keyfreq visual-regexp enh-ruby-mode counsel-projectile counsel ivy flycheck-rust flycheck hydra solarized-theme company-ansible column-enforce-mode yaml-mode ansible dockerfile-mode ruby-end dash-at-point base16-theme exec-path-from-shell))))
|
(erlang gitignore-mode yaml-mode nginx-mode ansible terraform-mode dockerfile-mode reason-mode merlin tuareg clj-refactor cider clojure-mode elixir-mode js2-mode web-mode enh-ruby-mode ruby-end rspec-mode planet-theme flatui-theme base16-theme smart-mode-line lsp-ui lsp-mode deft counsel-projectile flycheck company yasnippet-snippets yasnippet visual-regexp column-enforce-mode dash-at-point rainbow-mode rainbow-delimiters magit hydra counsel keyfreq exec-path-from-shell buffer-move use-package))))
|
||||||
|
|
||||||
;; Improve font settings in Markdown code
|
;; Improve font settings in Markdown code
|
||||||
(custom-set-faces
|
(custom-set-faces
|
||||||
|
|
|
||||||
|
|
@ -8,20 +8,29 @@
|
||||||
|
|
||||||
(defun activate-clang-mode ()
|
(defun activate-clang-mode ()
|
||||||
"Goodies for editing c files."
|
"Goodies for editing c files."
|
||||||
(set-indent 8)
|
|
||||||
|
;; Set column width to 100
|
||||||
(column-enforce-n 100)
|
(column-enforce-n 100)
|
||||||
|
|
||||||
|
;; Set indentation to 4 chars
|
||||||
|
(if (boundp 'c-basic-offset)
|
||||||
|
(setq-local c-basic-offset 4)
|
||||||
|
(defvar c-basic-offset 4))
|
||||||
|
|
||||||
|
(if (boundp 'c-default-style)
|
||||||
|
(setq-local c-default-style "bsd")
|
||||||
|
(defvar c-default-style "bsd"))
|
||||||
|
|
||||||
(add-to-list (make-local-variable 'company-backends)
|
(add-to-list (make-local-variable 'company-backends)
|
||||||
'(company-etags company-yasnippet))
|
'(company-etags company-yasnippet))
|
||||||
|
|
||||||
(setq-local
|
(setq-local
|
||||||
ctags/refresh-command
|
ctags/refresh-command
|
||||||
(format
|
(format
|
||||||
"ctags -e -R --languages=C -f %sTAGS %s."
|
"uctags -e -R --languages=C -f %sTAGS %s/*"
|
||||||
(projectile-project-root) (projectile-project-root)
|
(projectile-project-root) (projectile-project-root))))
|
||||||
)))
|
|
||||||
|
|
||||||
(add-hook 'c-mode 'activate-clang-mode)
|
(add-hook 'c-mode-hook 'activate-clang-mode)
|
||||||
|
|
||||||
(provide 'languages/clang)
|
(provide 'languages/clang)
|
||||||
;;; clang.el ends here
|
;;; clang.el ends here
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@
|
||||||
|
|
||||||
^Cider^ ^Actions^
|
^Cider^ ^Actions^
|
||||||
^^^^^^^^-----------------------------------------------------------------------
|
^^^^^^^^-----------------------------------------------------------------------
|
||||||
_j_: Jack in
|
_j_: Jack in _t_: Run loaded test(s)
|
||||||
_f_: Format buffer
|
_f_: Format buffer
|
||||||
_l_: Load buffer
|
_l_: Load buffer
|
||||||
"
|
"
|
||||||
|
|
@ -36,7 +36,8 @@ _l_: Load buffer
|
||||||
|
|
||||||
("j" cider-jack-in)
|
("j" cider-jack-in)
|
||||||
("f" cider-format-buffer)
|
("f" cider-format-buffer)
|
||||||
("l" cider-load-buffer))
|
("l" cider-load-buffer)
|
||||||
|
("t" cider-test-run-loaded-tests))
|
||||||
|
|
||||||
(defun activate-my-clojure-mode ()
|
(defun activate-my-clojure-mode ()
|
||||||
"Goodies for clojure files."
|
"Goodies for clojure files."
|
||||||
|
|
@ -56,6 +57,7 @@ _l_: Load buffer
|
||||||
(add-hook 'clojure-mode-hook 'activate-my-clojure-mode)
|
(add-hook 'clojure-mode-hook 'activate-my-clojure-mode)
|
||||||
|
|
||||||
(defun my-clj-repl-config ()
|
(defun my-clj-repl-config ()
|
||||||
|
"Do not show stacktrace when in REPL."
|
||||||
(setq-local cider-show-error-buffer 'except-in-repl))
|
(setq-local cider-show-error-buffer 'except-in-repl))
|
||||||
|
|
||||||
(add-hook 'cider-repl-mode-hook 'my-clj-repl-config)
|
(add-hook 'cider-repl-mode-hook 'my-clj-repl-config)
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,10 @@
|
||||||
(require '05ctags "$HOME/.emacs.d/05ctags.el")
|
(require '05ctags "$HOME/.emacs.d/05ctags.el")
|
||||||
(require '05prog-mode "$HOME/.emacs.d/05prog-mode.el")
|
(require '05prog-mode "$HOME/.emacs.d/05prog-mode.el")
|
||||||
|
|
||||||
|
(use-package erlang
|
||||||
|
:defer t
|
||||||
|
:ensure t)
|
||||||
|
|
||||||
(cl-defun erlang/emacs-path (erlang-version)
|
(cl-defun erlang/emacs-path (erlang-version)
|
||||||
(car (split-string
|
(car (split-string
|
||||||
(shell-command-to-string
|
(shell-command-to-string
|
||||||
|
|
@ -97,19 +101,12 @@
|
||||||
|
|
||||||
;; Company list override
|
;; Company list override
|
||||||
(add-to-list (make-local-variable 'company-backends)
|
(add-to-list (make-local-variable 'company-backends)
|
||||||
'(company-yasnippet company-etags)))
|
'(company-yasnippet company-capf))
|
||||||
|
|
||||||
|
;; Start LSP server
|
||||||
|
(lsp-deferred))
|
||||||
|
|
||||||
(add-hook 'erlang-mode-hook 'erlang/activate-erlang-mode)
|
(add-hook 'erlang-mode-hook 'erlang/activate-erlang-mode)
|
||||||
|
|
||||||
(define-derived-mode my-erlang-mode erlang-mode "My Erlang mode"
|
|
||||||
"A mode for Erlang things"
|
|
||||||
|
|
||||||
(activate-erlang-mode)
|
|
||||||
;; Enable flycheck
|
|
||||||
(flycheck-select-checker 'erlang-otp)
|
|
||||||
|
|
||||||
;; Automatically update tags on save
|
|
||||||
(ctags/update-this-mode-on-save 'erlang-mode))
|
|
||||||
|
|
||||||
(provide 'languages/erlang)
|
(provide 'languages/erlang)
|
||||||
;;; erlang.el ends here
|
;;; erlang.el ends here
|
||||||
|
|
|
||||||
28
languages/other.el
Normal file
28
languages/other.el
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
;;; other.el --- summary
|
||||||
|
|
||||||
|
;; Author: Maciej Szlosarczyk
|
||||||
|
;; Maintainer: Maciej Szlosarczyk
|
||||||
|
;; Version: 0.1-snapshot
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
|
||||||
|
;; Load other languages or syntaxes configuration that do not fit anywhere else.
|
||||||
|
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
;; Infrastructure files
|
||||||
|
(use-package dockerfile-mode :ensure t :defer t)
|
||||||
|
(use-package terraform-mode :ensure t :defer t)
|
||||||
|
(use-package ansible :ensure t :defer t)
|
||||||
|
(use-package nginx-mode :ensure t :defer t)
|
||||||
|
|
||||||
|
;; Text files
|
||||||
|
(use-package yaml-mode :ensure t :defer t)
|
||||||
|
(use-package gitignore-mode
|
||||||
|
:ensure t
|
||||||
|
:defer t
|
||||||
|
:hook ((gitignore-mode . whitespace-mode)
|
||||||
|
(before-save . whitespace-cleanup)))
|
||||||
|
|
||||||
|
(provide 'languages/other)
|
||||||
|
;;; other.el ends here
|
||||||
|
|
@ -1,6 +1,3 @@
|
||||||
# -*- mode: snippet -*-
|
|
||||||
# name: short-package
|
|
||||||
# --
|
|
||||||
;;; ${1:name}.el --- summary
|
;;; ${1:name}.el --- summary
|
||||||
|
|
||||||
;; Author: Maciej Szlosarczyk
|
;; Author: Maciej Szlosarczyk
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,10 @@
|
||||||
(setq-default display-time-format "%H:%M") ;; time format to display on mode line
|
(setq-default display-time-format "%H:%M") ;; time format to display on mode line
|
||||||
(sml/setup))
|
(sml/setup))
|
||||||
|
|
||||||
|
(use-package base16-theme :ensure t)
|
||||||
|
(use-package flatui-theme :ensure t :defer t)
|
||||||
|
(use-package planet-theme :ensure t :defer t)
|
||||||
|
|
||||||
;; Disable cursor blinking
|
;; Disable cursor blinking
|
||||||
(blink-cursor-mode 0)
|
(blink-cursor-mode 0)
|
||||||
|
|
||||||
|
|
@ -59,5 +63,5 @@
|
||||||
:foreground (face-foreground 'default)
|
:foreground (face-foreground 'default)
|
||||||
:background (face-background 'default))
|
:background (face-background 'default))
|
||||||
|
|
||||||
(provide 'themes)
|
(provide '10themes)
|
||||||
;;; themes.el ends here
|
;;; themes.el ends here
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue