From ccdb5b9ec4af3879d2792f98782c91d2aae93fd4 Mon Sep 17 00:00:00 2001 From: Joel Grunbaum <joelgrun@gmail.com> Date: Wed, 22 Dec 2021 07:39:02 +0000 Subject: [PATCH] Added remote path sourcing for tramp --- config.org | 211 +++++++++++++++++++++++++--------------------------- 1 files changed, 103 insertions(+), 108 deletions(-) diff --git a/config.org b/config.org index cb0301e..1d46a04 100644 --- a/config.org +++ b/config.org @@ -86,12 +86,12 @@ (set-face-italic 'font-lock-keyword-face t) #+END_SRC -** Remove menu bar, toolbar, but keep scroll bar +** Remove menu bar, toolbar, and scroll bar Make the emacs interface slightly nicer. #+BEGIN_SRC emacs-lisp (menu-bar-mode 0) (tool-bar-mode 0) - (scroll-bar-mode 1) + (scroll-bar-mode 0) #+END_SRC * COMMENT EXWM Emacs window manager. @@ -614,7 +614,7 @@ #+BEGIN_SRC emacs-lisp (setq c-default-style '((java-mode . "java") (awk-mode . "awk") - (other . "linux"))) + (other . "k&r"))) #+END_SRC ** Coding system @@ -624,12 +624,22 @@ (set-keyboard-coding-system 'utf-8) (set-language-environment "UTF-8") (prefer-coding-system 'utf-8) - (setq-default indent-tabs-mode t - tab-width 8 + (setq-default indent-tabs-mode nil + tab-width 4 c-basic-offset tab-width cperl-indent-level tab-width) + (c-set-offset 'inline-open '0) (delete-selection-mode) (global-set-key (kbd "RET") 'newline-and-indent) +#+END_SRC +*** Smart tabs +Tabs for indentation, spaces for alignment +#+BEGIN_SRC emacs-lisp + (use-package smart-tabs-mode + :ensure t + :config + (smart-tabs-insinuate 'c 'c++ 'java 'javascript 'cperl 'python 'ruby + 'nxml)) #+END_SRC ** Move to beginning of line ignoring whitespace @@ -685,9 +695,15 @@ Remote editing mode. Hate having to re-input passwords. #+BEGIN_SRC emacs-lisp - (when (eq system-type 'windows-nt) - (setq tramp-default-method "pscp")) - (setq password-cache-expiry nil) + (use-package tramp + :ensure t + :pin gnu + :config + ;; (setq tramp-default-method "ssh") + (when (eq system-type 'windows-nt) + (setq tramp-default-method "pscp")) + (setq password-cache-expiry nil) + (add-to-list 'tramp-remote-path 'tramp-own-remote-path)) #+END_SRC ** COMMENT Y or N instead of yes or no @@ -791,7 +807,6 @@ :config (flycheck-pos-tip-mode)) #+END_SRC - ** Company Company is auto-complete for Emacs. Uses various backends, more of which are added later. @@ -802,24 +817,26 @@ :config (global-company-mode) (setq company-idle-delay 0) - (setq company-minimum-prefix-length 3)) + (setq company-minimum-prefix-length 1)) #+END_SRC ** LSP Mode Use LSP for completion suggestions. Causes too much memory usage, need to debug. +Need to generate ~compile_flags~ for c/c++, can use ~bear~ but may need other tools. #+BEGIN_SRC emacs-lisp (use-package lsp-mode :ensure t :hook (((c-mode - cpp-mode + c++-mode tex-mode latex-mode TeX-mode LaTeX-mode rust-mode sh-mode - verilog-mode) . lsp)) + verilog-mode + go-mode) . lsp)) :init (setq lsp-keymap-prefix "C-c l") :commands lsp @@ -954,7 +971,8 @@ ** Language specific configs *** C/C++ -**** Flycheck clang +**** Flycheck +***** Flycheck clang Add the clang backend for linting. #+BEGIN_SRC emacs-lisp (use-package flycheck-clang-analyzer @@ -965,8 +983,25 @@ (require 'flycheck-clang-analyzer) (flycheck-clang-analyzer-setup))) #+END_SRC +***** Flycheck project root +Flycheck tends to fail finding the project root, giving errors about missing files. +This should remove them. +#+BEGIN_SRC emacs-lisp + (defun setup-flycheck-project-path () + (let ((root (ignore-errors (projectile-project-root)))) + (when root + (add-to-list + (make-variable-buffer-local 'flycheck-clang-include-path) + root) + (add-to-list + (make-variable-buffer-local 'flycheck-gcc-include-path) + root)))) -**** Company + (add-hook 'c-mode-hook 'setup-flycheck-project-path) + (add-hook 'c++-mode-hook 'setup-flycheck-project-path) +#+END_SRC + +**** COMMENT Company Add header completion as well as Irony, which uses clang for suggestions. #+BEGIN_SRC emacs-lisp (use-package company-c-headers @@ -976,23 +1011,23 @@ (add-hook 'c++-mode-hook 'company-mode) (add-hook 'c-mode-hook 'company-mode)) - (use-package irony - :ensure t - :init - (setq w32-pipe-read-delay 0) - (setq irony-server-w32-pipe-buffer-size (* 64 1024)) - (add-hook 'c++-mode-hook 'irony-mode) - (add-hook 'c-mode-hook 'irony-mode) - (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options) - (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)) + ;; (use-package irony + ;; :ensure t + ;; :init + ;; (setq w32-pipe-read-delay 0) + ;; (setq irony-server-w32-pipe-buffer-size (* 64 1024)) + ;; (add-hook 'c++-mode-hook 'irony-mode) + ;; (add-hook 'c-mode-hook 'irony-mode) + ;; (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options) + ;; (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)) - (use-package company-irony - :ensure t - :after irony - :config - (add-to-list 'company-backends '(company-c-headers - company-dabbrev-code - company-irony))) + ;; (use-package company-irony + ;; :ensure t + ;; :after irony + ;; :config + ;; (add-to-list 'company-backends '(company-c-headers + ;; company-dabbrev-code + ;; company-irony))) #+END_SRC **** Clang-format Automatically format buffer on save. @@ -1127,10 +1162,13 @@ :ensure t :init (cond ((eq system-type 'windows-nt) - (setq plantuml-jar-path "c:/ProgramData/chocolatey/lib/plantuml/tools/plantuml.jar")) + (when (file-exists-p "c:/ProgramData/chocolatey/lib/plantuml/tools/plantuml.jar") + (setq plantuml-jar-path "c:/ProgramData/chocolatey/lib/plantuml/tools/plantuml.jar") + (setq planuml-default-exec-mode 'jar))) ((eq system-type 'gnu/linux) - (setq plantuml-jar-path "/usr/share/java/plantuml/plantuml.jar"))) - (setq planuml-default-exec-mode 'jar)) + (when (file-exists-p "/usr/share/java/plantuml/plantuml.jar") + (setq plantuml-jar-path "/usr/share/java/plantuml/plantuml.jar") + (setq planuml-default-exec-mode 'jar))))) #+END_SRC *** COMMENT Racket @@ -1147,73 +1185,19 @@ (autoload 'racket-mode "Racket" "Racket Editing Mode" t) (add-to-list 'auto-mode-alist - '("\\.rkt$" . racket-mode)) - (setq matlab-indent-function t)) + '("\\.rkt$" . racket-mode))) #+END_SRC -*** COMMENT Verilog +*** Verilog **** Get latest version -Pull the latest version from the web. +Use latest version from repositories. #+BEGIN_SRC emacs-lisp - (defun get-verilog-latest() - (if (not(file-directory-p "~/.emacs.d/elpa/verilog-mode")) - (make-directory "~/.emacs.d/elpa/verilog-mode")) - (if (file-exists-p "~/.emacs.d/elpa/verilog-mode/verilog-mode.el") - (delete-file "~/.emacs.d/elpa/verilog-mode/verilog-mode.el")) - (url-copy-file "https://www.veripool.org/ftp/verilog-mode.el" "~/.emacs.d/elpa/verilog-mode/verilog-mode.el" 1)) -#+END_SRC - -**** Integrate into emacs -Add updated version (based off auto-package-update) and integrate it with Emacs. -#+BEGIN_SRC emacs-lisp - (defun verilog-read-file-as-string (file) - "Read FILE contents." - (when (file-exists-p file) - (with-temp-buffer - (insert-file-contents file) - (buffer-string)))) - - (defun verilog-write-string-to-file (file string) - "Substitute FILE contents with STRING." - (with-temp-buffer - (insert string) - (when (file-writable-p file) - (write-region (point-min) - (point-max) - file)))) - - (defun verilog-today-day () - (time-to-days (current-time))) - - (defun should-update-verilog-p () - "Return non-nil when an update is due." - (and - (or - (not (file-exists-p "~/.emacs.d/.last-verilog-update-day")) - (if (>= (/ (- (verilog-today-day) (verilog-read-last-update-day)) 7) 1) - t - nil)))) - - (defun verilog-read-last-update-day () - "Read last update day." - (string-to-number - (verilog-read-file-as-string "~/.emacs.d/.last-verilog-update-day"))) - - (defun verilog-write-current-day () - "Store current day." - (verilog-write-string-to-file - "~/.emacs.d/.last-verilog-update-day" - (int-to-string (verilog-today-day)))) - (use-package verilog-mode - :init - (when (should-update-verilog-p) - (get-verilog-latest) - (verilog-write-current-day)) - (add-to-list 'load-path "~/.emacs.d/elpa/verilog-mode/verilog-mode.el") + :ensure t + :pin gnu :config (autoload 'verilog-mode "verilog-mode" "Verilog mode" t ) - (add-to-list 'auto-mode-alist '("\\.[ds]?vh?\\'" . verilog-mode))) + (add-to-list 'auto-mode-alist '("\\.[ds]?va?h?\\'" . verilog-mode))) #+END_SRC *** COMMENT MATLAB @@ -1274,26 +1258,38 @@ (use-package flycheck-rust :ensure t :config - (add-hook 'flyckeck-mode-hook #'flycheck-rust-setup)) + (add-hook 'flycheck-mode-hook #'flycheck-rust-setup)) +#+END_SRC +*** Go +**** Major mode +#+BEGIN_SRC emacs-lisp + (use-package go-mode + :ensure t + :config + (add-hook 'before-save-hook #'gofmt-before-save)) #+END_SRC -**** COMMENT Completion -Code completion with racer. +#+RESULTS: +: t + +**** Flycheck #+BEGIN_SRC emacs-lisp - (use-package racer + (use-package flycheck-golangci-lint :ensure t - :hook ((rust-mode . racer-mode) - (racer-mode . (eldoc-mode company-mode))) - :init - (setq racer-command "~/.cargo/bin/racer")) + :config + (add-hook 'flycheck-mode-hook #'flycheck-golangci-lint-setup)) +#+END_SRC +**** Company +#+BEGIN_SRC emacs-lisp + (use-package company-go + :ensure t) #+END_SRC * Org mode ** Up to date org Pull the latest org mode from the repository, rather than the org which comes with emacs. #+BEGIN_SRC emacs-lisp - (use-package org - :ensure org-plus-contrib - :pin org) + (use-package org + :ensure org-contrib) #+END_SRC ** Small tweaks @@ -1323,13 +1319,13 @@ (visual-line-mode 1))) #+END_SRC -** org-bullets +** Fancy org points Use bullets of different colours and styles instead of the "\*\*\*" to denote indentation levels. #+BEGIN_SRC emacs-lisp - (use-package org-bullets + (use-package org-superstar :ensure t :config - (add-hook 'org-mode-hook (lambda () (org-bullets-mode)))) + (add-hook 'org-mode-hook (lambda () (org-superstar-mode 1)))) #+END_SRC ** Org Babel @@ -1345,7 +1341,6 @@ (scheme . t) (gnuplot . t) (matlab . t) - (plantuml . t) (fortran . t) (java . t) (plantuml . t))) -- Gitblit v1.9.3