Move erlang to LSP

This commit is contained in:
Maciej 2020-07-27 16:04:21 +03:00
parent e586cda3c1
commit 617aa409b5
Signed by: maciej
GPG key ID: 41D62D42D3B0D765
9 changed files with 90 additions and 81 deletions

View file

@ -7,6 +7,7 @@
(setq gc-cons-threshold 50000000)
;;;;;;;; Other optimizations ;;;;;;;;;;;;;;;;;
;; Stolen from Doom Emacs.
;; Update emacs less often
(setq idle-update-delay 1.0)
@ -161,21 +162,16 @@
;;;;;;;;;;;;;;;;;;;;;; Shell stuff ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(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
(use-package exec-path-from-shell
:if (memq window-system '(mac ns))
: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))
;;;;;;;;;;;;;;;;;;;;;; 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 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Always start in fullscreen
(defun toggle-fullscreen ()

View file

@ -74,5 +74,10 @@
:defer 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)
;;; 05prog-mode ends here

71
init.el
View file

@ -9,42 +9,15 @@
(package-initialize)
;; fetch the list of packages available
(unless package-archive-contents
(package-refresh-contents))
(unless package-archive-contents (package-refresh-contents))
;; list the packages you want
(defvar package-list '(
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)))
;; install use-package, the workhorse of configuration
(unless (package-installed-p 'use-package)
(package-install 'use-package))
(require 'use-package)
;; Additional files
;; General configuration files.
(require '01mac "$HOME/.emacs.d/01mac.el")
(require '05macros "$HOME/.emacs.d/05macros.el")
(require '05ivy "$HOME/.emacs.d/05ivy.el")
@ -60,33 +33,31 @@
(require '05lsp "$HOME/.emacs.d/05lsp.el")
;; Themes
(load "$HOME/.emacs.d/themes/themes.el" 'f 't)
(require '10themes "$HOME/.emacs.d/themes/themes.el")
;; Actual supported languages
(load "$HOME/.emacs.d/languages/elisp.el" 'f 't)
(load "$HOME/.emacs.d/languages/ruby.el" 'f 't)
(load "$HOME/.emacs.d/languages/web.el" 'f 't)
(load "$HOME/.emacs.d/languages/javascript.el" 'f 't)
(load "$HOME/.emacs.d/languages/elixir.el" 'f 't)
(load "$HOME/.emacs.d/languages/erlang.el" 'f 't)
(load "$HOME/.emacs.d/languages/sh.el" 'f 't)
(load "$HOME/.emacs.d/languages/rust.el" 'f 't)
(load "$HOME/.emacs.d/languages/clang.el" 'f 't)
(load "$HOME/.emacs.d/languages/clojure.el" 'f 't)
(load "$HOME/.emacs.d/languages/ocaml.el" 'f 't)
(load "$HOME/.emacs.d/languages/markdown.el" 'f 't)
;; Actual supported languages and file syntax.
(require 'languages/elisp "$HOME/.emacs.d/languages/elisp.el")
(require 'languages/ruby "$HOME/.emacs.d/languages/ruby.el")
(require 'languages/web "$HOME/.emacs.d/languages/web.el")
(require 'languages/javascript "$HOME/.emacs.d/languages/javascript.el")
(require 'languages/elixir "$HOME/.emacs.d/languages/elixir.el")
(require 'languages/erlang "$HOME/.emacs.d/languages/erlang.el")
(require 'languages/sh "$HOME/.emacs.d/languages/sh.el")
(require 'languages/rust "$HOME/.emacs.d/languages/rust.el")
(require 'languages/clang "$HOME/.emacs.d/languages/clang.el")
(require 'languages/clojure "$HOME/.emacs.d/languages/clojure.el")
(require 'languages/ocaml "$HOME/.emacs.d/languages/ocaml.el")
(require 'languages/markdown "$HOME/.emacs.d/languages/markdown.el")
(require 'languages/other "$HOME/.emacs.d/languages/other.el")
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; 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
(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
(custom-set-faces

View file

@ -8,20 +8,29 @@
(defun activate-clang-mode ()
"Goodies for editing c files."
(set-indent 8)
;; Set column width to 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)
'(company-etags company-yasnippet))
(setq-local
ctags/refresh-command
(format
"ctags -e -R --languages=C -f %sTAGS %s."
(projectile-project-root) (projectile-project-root)
)))
"uctags -e -R --languages=C -f %sTAGS %s/*"
(projectile-project-root) (projectile-project-root))))
(add-hook 'c-mode 'activate-clang-mode)
(add-hook 'c-mode-hook 'activate-clang-mode)
(provide 'languages/clang)
;;; clang.el ends here

View file

@ -28,7 +28,7 @@
^Cider^ ^Actions^
^^^^^^^^-----------------------------------------------------------------------
_j_: Jack in
_j_: Jack in _t_: Run loaded test(s)
_f_: Format buffer
_l_: Load buffer
"
@ -36,7 +36,8 @@ _l_: Load buffer
("j" cider-jack-in)
("f" cider-format-buffer)
("l" cider-load-buffer))
("l" cider-load-buffer)
("t" cider-test-run-loaded-tests))
(defun activate-my-clojure-mode ()
"Goodies for clojure files."
@ -56,6 +57,7 @@ _l_: Load buffer
(add-hook 'clojure-mode-hook 'activate-my-clojure-mode)
(defun my-clj-repl-config ()
"Do not show stacktrace when in REPL."
(setq-local cider-show-error-buffer 'except-in-repl))
(add-hook 'cider-repl-mode-hook 'my-clj-repl-config)

View file

@ -5,6 +5,10 @@
(require '05ctags "$HOME/.emacs.d/05ctags.el")
(require '05prog-mode "$HOME/.emacs.d/05prog-mode.el")
(use-package erlang
:defer t
:ensure t)
(cl-defun erlang/emacs-path (erlang-version)
(car (split-string
(shell-command-to-string
@ -97,19 +101,12 @@
;; Company list override
(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)
(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)
;;; erlang.el ends here

28
languages/other.el Normal file
View 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

View file

@ -1,6 +1,3 @@
# -*- mode: snippet -*-
# name: short-package
# --
;;; ${1:name}.el --- summary
;; Author: Maciej Szlosarczyk

View file

@ -10,6 +10,10 @@
(setq-default display-time-format "%H:%M") ;; time format to display on mode line
(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
(blink-cursor-mode 0)
@ -59,5 +63,5 @@
:foreground (face-foreground 'default)
:background (face-background 'default))
(provide 'themes)
(provide '10themes)
;;; themes.el ends here