Browse Source

Finish module upgrade

main
parent
commit
b043a3602f
  1. BIN
      docs/archive.org.gpg
  2. 4
      elisp/options.el
  3. 45
      modules/cc.org
  4. 43
      modules/conf.org
  5. 102
      modules/development.org
  6. 2
      modules/keys.org
  7. 55
      modules/uml.org

BIN
docs/archive.org.gpg

4
elisp/options.el

@ -4,8 +4,8 @@
gpg pass x11 exwm roam agenda
spelling grammar reveal hugo
capture projects docker lsp dap
development go python
fonts ivy themes modeline dashboard)
cc go uml conf python fonts ivy
themes modeline dashboard)
"All of the available modules.")
(defvar dotfiles/modules dotfiles/modules-p

45
modules/cc.org

@ -0,0 +1,45 @@
#+TITLE: C/C++
#+AUTHOR: Christopher James Hayward
#+EMAIL: chris@chrishayward.xyz
#+PROPERTY: header-args:emacs-lisp :tangle cc.el :comments org
#+PROPERTY: header-args:shell :tangle no
#+PROPERTY: header-args :results silent :eval no-export :comments org
#+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil
#+OPTIONS: skip:nil author:nil email:nil creator:nil timestamp:nil
#+begin_quote
The goal of C++ is productivity, this comes in many ways, but the language is designed to aid you as much as possible whiole hindering you as little as possible with arbitrary rules or requirements.
-- Bruce Eckel, Thinking in C++[fn:1]
#+end_quote
* Setup
Make sure all of the required components are installed, and the ~lsp~ and ~dap~ modules have loaded before loading this module.
#+begin_src shell
RUN apt install -y gcc gdb ccls libstdc++
#+end_src
* Config
Use the ~ccls~[fn:2] language server, and the respective Emacs package to interact with the server inside of Emacs. Load the ~babel~ language module and add structure templates for creating C/C++ code blocks inside ~org-mode~.
#+begin_src emacs-lisp
(use-package ccls
:hook ((c-mode c++-mode objc-mode cuda-mode) .
(lambda ()
(require 'ccls)
(lsp-deferred)))
:config (add-to-list 'org-structure-template-alist '("cc" . "src C"))
(add-to-list 'org-structure-template-alist '("cpp" . "src C++"))
(org-babel-do-load-languages 'org-babel-load-languages '((C . t))))
#+end_src
* Footnotes
[fn:1] https://chrishayward.xyz/notes/thinking-in-cpp/
[fn:2] https://github.com/MaskRay/ccls

43
modules/conf.org

@ -0,0 +1,43 @@
#+TITLE: Conf
#+AUTHOR: Christopher James Hayward
#+EMAIL: chris@chrishayward.xyz
#+PROPERTY: header-args:emacs-lisp :tangle conf.el :comments org
#+PROPERTY: header-args:shell :tangle no
#+PROPERTY: header-args :results silent :eval no-export :comments org
#+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil
#+OPTIONS: skip:nil author:nil email:nil creator:nil timestamp:nil
Support for different configuration languages.
* Config
Add support for different configuration languages, or other modules that don't fit in their own module (yet).
** HTTP
Interact with ~HTTP~ endpoints using the ~ob-http~[fn:1] package. You can see how it works in my post here[fn:2]. It adds interactive ~HTTP~ blocks that can output their results in place, within an ~org-mode~ buffer.
#+begin_src emacs-lisp
(use-package ob-http
:after org
:config (org-babel-do-load-languages
'org-babel-load-languages '((http . t))))
#+end_src
** YAML
Support for YAML[fn:3] files.
#+begin_src emacs-lisp
(use-package yaml-mode)
#+end_src
* Footnotes
[fn:1] https://github.com/zweifisch/ob-http
[fn:2] https://chrishayward.xyz/posts/kanye-as-a-service/
[fn:3] https://emacswiki.org/emacs/YamlMode

102
modules/development.org

@ -1,102 +0,0 @@
#+TITLE: Development
#+AUTHOR: Christopher James Hayward
#+EMAIL: chris@chrishayward.xyz
#+PROPERTY: header-args:emacs-lisp :tangle development.el :comments org
#+PROPERTY: header-args:shell :tangle no
#+PROPERTY: header-args :results silent :eval no-export :comments org
#+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil
#+OPTIONS: skip:nil author:nil email:nil creator:nil timestamp:nil
Support for individual programming languages, has a hard dependency on the [[file:projects.org][Projects]] module for integration with *LSP*[fn:1] / *DAP*[fn:2]
* HTTP
Interactive with *HTTP* endpoints using the *ob-http*[fn:6] package. You can see how it works in my post [[file:../docs/posts/kanye-as-a-service.org.gpg][Kanye as a Service]]. Essentialy it adds interactive *HTTP* blocks that can output their results in place.
#+begin_src emacs-lisp
(use-package ob-http
:after org
:config (org-babel-do-load-languages
'org-babel-load-languages '((http . t))))
#+end_src
* YAML
Support for YAML files.
#+begin_src emacs-lisp
(use-package yaml-mode)
#+end_src
* C/C++
Add support for the *C/C++* family of languages via the *CCLS*[fn:7] language server.
+ Install requirements
+ Integrate with *LSP*[fn:2]
+ Integrate with *DAP*[fn:1]
+ Load babel language modules
+ Create new structure templates
* ~<cc~ for *C*
* ~<cpp~ for *C++*
#+begin_src emacs-lisp
(use-package ccls
:hook ((c-mode c++-mode objc-mode cuda-mode) .
(lambda ()
(require 'ccls)
(lsp-deferred)))
:config (add-to-list 'org-structure-template-alist '("cc" . "src C"))
(add-to-list 'org-structure-template-alist '("cpp" . "src C++"))
(org-babel-do-load-languages 'org-babel-load-languages '((C . t))))
#+end_src
* PlantUML
Download and install *PlantUML*[fn:8], a text-based markup language for creating UML diagrams. You can read my notes about the tool [[file:../docs/notes/plantuml.org.gpg][PlantUML]] here. Support added through the *plantuml-mode*[fn:9] package.
+ Install requirements
+ Load the babel module for *PlantUML*[fn:8]
+ Create a structure template with ~<pl~
+ Toggle inline imagines with =SPC t i=
#+begin_src emacs-lisp
(use-package plantuml-mode
:after org
:custom (plantuml-default-exec-mode 'jar)
(plantuml-jar-path "~/.local/bin/plantuml.jar")
(org-plantuml-jar-path (expand-file-name "~/.local/bin/plantuml.jar"))
(org-startup-with-inline-images t)
:config (add-to-list 'org-src-lang-modes '("plantuml" . plantuml))
(add-to-list 'org-structure-template-alist '("pl" . "src plantuml"))
(org-babel-do-load-languages 'org-babel-load-languages '((plantuml . t)))
(dotfiles/leader "ti" '(org-toggle-inline-images :which-key "Images")))
#+end_src
* Footnotes
[fn:1] https://microsoft.github.io/debug-adapter-protocol
[fn:2] https://microsoft.github.io/language-server-protocol
[fn:3] https://golang.org
[fn:4] https://pkg.go.dev/golang.org/x/tools/gopls
[fn:5] https://emacswiki.org/emacs/GoMode
[fn:6] https://github.com/zweifisch/ob-http
[fn:7] https://github.com/MaskRay/ccls
[fn:8] https://plantuml.com
[fn:9] https://github.com/skuro/plantuml-mode
[fn:10] https://pypi.org/project/python-language-server/
[fn:11] https://emacswiki.org/emacs/PythonProgrammingInEmacs
[fn:12] https://python.org

2
modules/keys.org

@ -97,7 +97,7 @@ Screen space is divided into Frames inside of Emacs, manage them behind =SPC w=:
"w" '(:ignore t :which-key "Window")
"ww" '(window-swap-states :which-key "Swap")
"wc" '(kill-buffer-and-window :which-key "Close")
"wd" '(delete-window :which-key "Close")
"wd" '(delete-window :which-key "Delete")
"wh" '(windmove-left :which-key "Left")
"wj" '(windmove-down :which-key "Down")
"wk" '(windmove-up :which-key "Up")

55
modules/uml.org

@ -0,0 +1,55 @@
#+TITLE: UML
#+AUTHOR: Christopher James Hayward
#+EMAIL: chris@chrishayward.xyz
#+PROPERTY: header-args:emacs-lisp :tangle uml.el :comments org
#+PROPERTY: header-args:shell :tangle no
#+PROPERTY: header-args :results silent :eval no-export :comments org
#+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil
#+OPTIONS: skip:nil author:nil email:nil creator:nil timestamp:nil
Draw UML[fn:1] diagrams inside Emacs.
* Setup
Make sure all of the required components are installed on your system before loading the module.
#+begin_src shell
RUN apt install -y default-jre
#+end_src
* Config
Download and install ~PlantUML~[fn:2], a text-based markup language for creating UML[fn:1] diagrams. You can read my notes about using the software here[fn:3]. Support for Emacs is added through the ~plantuml-mode~[fn:4] package. Configure the ~babel~ language module and structure templates to write diagrams in ~org-mode~ buffers.
#+begin_src emacs-lisp
(use-package plantuml-mode
:after org
:custom (plantuml-default-exec-mode 'jar)
(plantuml-jar-path "~/.local/bin/plantuml.jar")
(org-plantuml-jar-path (expand-file-name "~/.local/bin/plantuml.jar"))
(org-startup-with-inline-images t)
:config (add-to-list 'org-src-lang-modes '("plantuml" . plantuml))
(add-to-list 'org-structure-template-alist '("pl" . "src plantuml"))
(org-babel-do-load-languages 'org-babel-load-languages '((plantuml . t))))
#+end_src
* Shortcuts
Toggle inline imagines with =SPC t i=.
#+begin_src emacs-lisp
(dotfiles/leader
"ti" '(org-toggle-inline-images :which-key "Images"))
#+end_src
* Footnotes
[fn:1] https://tutorialspoint.com/uml/uml_standard_diagrams.htm
[fn:2] https://plantuml.com
[fn:3] https://chrishayward.xyz/notes/plantuml/
[fn:4] https://github.com/skuro/plantuml-mode
Loading…
Cancel
Save