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 | 220 +++++++++++++++++++++++++++---------------------------
1 files changed, 111 insertions(+), 109 deletions(-)
diff --git a/config.org b/config.org
index 1bf6271..1d46a04 100644
--- a/config.org
+++ b/config.org
@@ -8,7 +8,7 @@
(cond ((eq system-type 'windows-nt)
(add-to-list 'exec-path "C:/msys64/usr/bin")
(add-to-list 'exec-path "C:/msys64/mingw64/bin")
- (add-to-list 'exec-path "c:/Program Files/gnuplot")
+ (add-to-list 'exec-path "C:/Program Files/gnuplot")
(setenv "PATH" (mapconcat #'identity exec-path path-separator)))
((eq system-type 'darwin)
(use-package exec-path-from-shell
@@ -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,13 +624,23 @@
(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
Move point back to indentation of beginning of line.
@@ -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
@@ -718,6 +734,13 @@
(minimap-mode))
#+END_SRC
+** Highlight indentation
+Vertical demarcations for indent levels
+#+BEGIN_SRC emacs-lisp
+ (use-package highlight-indentation
+ :ensure t
+ :hook (prog-mode . highlight-indentation-mode))
+#+END_SRC
* Mode line tweaks
Diminish is used but is included in init.el such that it can be used throughout this document
** Spaceline
@@ -784,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.
@@ -795,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
@@ -947,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
@@ -958,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
@@ -969,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.
@@ -1120,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
@@ -1140,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
@@ -1267,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
@@ -1316,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
@@ -1338,7 +1341,6 @@
(scheme . t)
(gnuplot . t)
(matlab . t)
- (plantuml . t)
(fortran . t)
(java . t)
(plantuml . t)))
--
Gitblit v1.10.0