Emacs: Shuffle some sections around
This commit is contained in:
		
							parent
							
								
									c0217bf6ac
								
							
						
					
					
						commit
						7ec983116f
					
				| @ -2381,6 +2381,23 @@ file." | ||||
| 
 | ||||
| #+end_src | ||||
| ** Programming Languages | ||||
| *** C | ||||
| 
 | ||||
| Design some basic functions for compiling. There's also a hook to close the popper window if there | ||||
| are no warnings or errors. It will check if we are still in the compilation buffer as well as | ||||
| whether the point hasn't been moved. This way, if I switched to another popper buffer, like vterm, | ||||
| it doesn't close it. | ||||
| 
 | ||||
| #+begin_src emacs-lisp | ||||
| (require 'disaster) | ||||
| (setq c-default-style "bsd") | ||||
| (defun joe/c-mode-hook () | ||||
|   (local-set-key (kbd "C-x c r") (defun joe/make-run () (interactive) (compile "make run"))) | ||||
|   (local-set-key (kbd "C-x c c") (defun joe/make () (interactive) (compile "make"))) | ||||
|   (electric-pair-local-mode t) | ||||
|   (c-toggle-comment-style -1)) | ||||
| (add-hook 'c-mode-hook #'joe/c-mode-hook) | ||||
| #+end_src | ||||
| *** Python | ||||
| #+begin_src emacs-lisp | ||||
| (require 'python) | ||||
| @ -2424,6 +2441,51 @@ file." | ||||
| ;;   (setq lsp-rust-analyzer-display-reborrow-hints t) | ||||
| ;;   (setq lsp-rust-analyzer-cargo-watch-command "clippy")) | ||||
| #+end_src | ||||
| *** OCaml | ||||
| #+begin_src emacs-lisp | ||||
| (require 'tuareg) | ||||
| (require 'dune) | ||||
| (require 'utop) | ||||
| (require 'merlin) | ||||
| (require 'merlin-eldoc) | ||||
| ;; Might be worth checking out, depeding on whether we stick with flycheck or not | ||||
| ;; (elpaca 'flycheck-ocaml) | ||||
| ;; Also check this out, see if it adds anything | ||||
| ;; (require 'ocp-indent) | ||||
| 
 | ||||
| (defun opam-env () | ||||
|   "Load the opam env to get the PATH variables so everything works" | ||||
|   (interactive nil) | ||||
|   (dolist (var | ||||
|            (car (read-from-string | ||||
|                  (shell-command-to-string "opam config env --sexp")))) | ||||
|     (setenv (car var) (cadr var)))) | ||||
| (setq opam-share | ||||
|       (substring (shell-command-to-string | ||||
|                   "opam config var share 2> /dev/null") 0 -1)) | ||||
| (add-to-list 'load-path (expand-file-name "emacs/site-lisp" opam-share)) | ||||
| #+end_src | ||||
| 
 | ||||
| We won't use the LSP server but rather directly talk to Merlin, since I guess LSP just wraps Merlin | ||||
| and there's no need for a middle-man when it's already been implemented. | ||||
| 
 | ||||
| #+begin_src emacs-lisp | ||||
| 
 | ||||
| ;; (require 'utop) | ||||
| ;; Use the opam installed utop | ||||
| (setq utop-command "opam exec -- utop -emacs") | ||||
| 
 | ||||
| (let ((opam-share (ignore-errors (car (process-lines "opam" "var" "share"))))) | ||||
|   (when (and opam-share (file-directory-p opam-share)) | ||||
|     ;; Register Merlin | ||||
|     (add-to-list 'load-path (expand-file-name "emacs/site-lisp" opam-share)) | ||||
|     (autoload 'merlin-mode "merlin" nil t nil) | ||||
|     ;; Automatically start it in OCaml buffers | ||||
|     (add-hook 'tuareg-mode-hook 'merlin-mode t) | ||||
|     (add-hook 'caml-mode-hook 'merlin-mode t) | ||||
|     ;; Use opam switch to lookup ocamlmerlin binary | ||||
|     (setq merlin-command 'opam))) | ||||
| #+end_src | ||||
| *** Elisp | ||||
| #+begin_src emacs-lisp | ||||
| (global-set-key (kbd "C-x C-r") 'eval-region) | ||||
| @ -2503,24 +2565,7 @@ file." | ||||
| 
 | ||||
| (add-hook 'sql-login-hook 'joe/sql-login-hook) | ||||
| #+end_src | ||||
| *** C | ||||
| 
 | ||||
| Design some basic functions for compiling. There's also a hook to close the popper window if there | ||||
| are no warnings or errors. It will check if we are still in the compilation buffer as well as | ||||
| whether the point hasn't been moved. This way, if I switched to another popper buffer, like vterm, | ||||
| it doesn't close it. | ||||
| 
 | ||||
| #+begin_src emacs-lisp | ||||
| (require 'disaster) | ||||
| (setq c-default-style "bsd") | ||||
| (defun joe/c-mode-hook () | ||||
|   (local-set-key (kbd "C-x c r") (defun joe/make-run () (interactive) (compile "make run"))) | ||||
|   (local-set-key (kbd "C-x c c") (defun joe/make () (interactive) (compile "make"))) | ||||
|   (electric-pair-local-mode t) | ||||
|   (c-toggle-comment-style -1)) | ||||
| (add-hook 'c-mode-hook #'joe/c-mode-hook) | ||||
| #+end_src | ||||
| *** Haskell | ||||
| *** COMMENT Haskell | ||||
| #+begin_src emacs-lisp | ||||
|   (require 'haskell-mode) | ||||
|   (setq haskell-interactive-popup-errors nil) | ||||
| @ -2535,51 +2580,6 @@ it doesn't close it. | ||||
| (require 'cider) | ||||
| (setq cider-show-error-buffer 'only-in-repl) | ||||
| #+end_src | ||||
| *** COMMENT OCaml | ||||
| #+begin_src emacs-lisp | ||||
| (require 'tuareg) | ||||
| (require 'dune) | ||||
| (require 'utop) | ||||
| (require 'merlin) | ||||
| (require 'merlin-eldoc) | ||||
| ;; Might be worth checking out, depeding on whether we stick with flycheck or not | ||||
| ;; (elpaca 'flycheck-ocaml) | ||||
| ;; Also check this out, see if it adds anything | ||||
| ;; (require 'ocp-indent) | ||||
| 
 | ||||
| (defun opam-env () | ||||
|   "Load the opam env to get the PATH variables so everything works" | ||||
|   (interactive nil) | ||||
|   (dolist (var | ||||
|            (car (read-from-string | ||||
|                  (shell-command-to-string "opam config env --sexp")))) | ||||
|     (setenv (car var) (cadr var)))) | ||||
| (setq opam-share | ||||
|       (substring (shell-command-to-string | ||||
|                   "opam config var share 2> /dev/null") 0 -1)) | ||||
| (add-to-list 'load-path (expand-file-name "emacs/site-lisp" opam-share)) | ||||
| #+end_src | ||||
| 
 | ||||
| We won't use the LSP server but rather directly talk to Merlin, since I guess LSP just wraps Merlin | ||||
| and there's no need for a middle-man when it's already been implemented. | ||||
| 
 | ||||
| #+begin_src emacs-lisp | ||||
| 
 | ||||
| ;; (require 'utop) | ||||
| ;; Use the opam installed utop | ||||
| (setq utop-command "opam exec -- utop -emacs") | ||||
| 
 | ||||
| (let ((opam-share (ignore-errors (car (process-lines "opam" "var" "share"))))) | ||||
|   (when (and opam-share (file-directory-p opam-share)) | ||||
|     ;; Register Merlin | ||||
|     (add-to-list 'load-path (expand-file-name "emacs/site-lisp" opam-share)) | ||||
|     (autoload 'merlin-mode "merlin" nil t nil) | ||||
|     ;; Automatically start it in OCaml buffers | ||||
|     (add-hook 'tuareg-mode-hook 'merlin-mode t) | ||||
|     (add-hook 'caml-mode-hook 'merlin-mode t) | ||||
|     ;; Use opam switch to lookup ocamlmerlin binary | ||||
|     (setq merlin-command 'opam))) | ||||
| #+end_src | ||||
| *** COMMENT FSharp | ||||
| #+begin_src emacs-lisp | ||||
| (require 'fsharp-mode) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user