diff --git a/README.md b/README.md index a93a5230..e661e398 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ - + # M-EMACS - + # About @@ -19,14 +19,14 @@ This configuration is designed and tested for **GNU Emacs 25.1 and above only**. ``` - + ## About README This README is originated from init.org that is generated using `M-x org-gfm-export-to-markdown`. Every block of code is generated through this function - it exports the section of code from the `elisp/` directory. You will not see their presence in init.org. - + ## Installation @@ -50,7 +50,7 @@ I will be updating M-EMACS from time to time, it is best to `git pull` once a wh Please also execute `git submodule update --recursive --remote` to sync with all the submodules. - + ## Modification @@ -66,14 +66,14 @@ You have the permission to use, modify, distribute in any way you want. However, 6. Call `M-x org-gfm-export-to-markdown` to update this README. - + ## Spotted a Bug? Suggestions? Please fill in Issues. - + ## Special Thanks @@ -86,94 +86,94 @@ Everyone starts somewhere, and I started here. # Table of Contents :TOC_2_ORG: -- [M-EMACS](#orgaff5a80) -- [About](#org26dedc0) - - [About README](#orgcee967c) - - [Installation](#org4f6006a) - - [Modification](#org004c218) - - [Spotted a Bug? Suggestions?](#org43672a4) - - [Special Thanks](#org3c785de) -- [Startup](#org8f91f02) - - [Lexical-binding](#org1ac173b) - - [Disable Unnecessary Interface](#org87ed3cc) - - [Optimization](#orgd38b240) - - [Load-Path](#orgb49b473) - - [Define Constants](#org15ba380) -- [Package Management](#orgcda074d) - - [Melpa Packages](#org010a75a) - - [Non-Melpa Packages](#org56e0a62) - - [Configure Package Management](#orgad417ff) - - [Use-Package Wrapper](#org42467d8) - - [Auto Package Update](#orgd53b71a) -- [Global Functionalities](#orga0ce393) - - [User Information](#orgf4af4f0) - - [Bindings](#org62f72ce) - - [Directory and File Management](#org0c143d6) - - [Search](#org520f953) - - [Avy](#org0862c7b) - - [Ivy](#orgcaa1058) - - [Shell](#org7c2d0e3) - - [Winner](#org245f11c) - - [Which Key](#orgaeecdf9) - - [Popup Kill Ring](#orgb9662b6) - - [Undo Tree](#orgea432c6) - - [Discover My Major](#org0ae2ab0) - - [Ace Window](#org4f6eaaa) - - [Configs](#org71f5305) - - [More Functions](#orga01110d) -- [User Interface Enhancements](#org23840b6) - - [Title Bar](#org79f4b99) - - [All The Icons](#org1a95e03) - - [Doom Theme](#orgae13cb7) - - [Doom Modeline](#orgbf259ac) - - [Dashboard](#org003602a) - - [Fonts](#org733886e) - - [Diminish](#org0f2d36e) - - [Smooth Scroll](#orgefb60b4) - - [Pretty Symbols](#orgbd7dcee) - - [UI Configs](#org48a20c1) -- [General Programming](#orgf41db91) - - [Magit](#orgdcecc57) - - [Projectile](#org48101f4) - - [Treemacs](#org90b562d) - - [Company](#orge4e9795) - - [YASnippet](#org1acdb39) - - [Flycheck](#org4cd47ca) - - [Dumb Jump](#org7283eb5) - - [Line Numbers](#orgb9cf42b) - - [Parenthesis](#org62a5ae1) - - [Indentation](#orgb980e93) - - [Format All](#orge2a3977) - - [Evil-Nerd-Commenter](#orgf5e0bfe) - - [Iedit](#org39cb52b) - - [Header](#org65f3718) -- [Programming](#org7e2e8a4) - - [Language Server Protocol](#orgeb3c748) - - [Java](#orga2575d9) - - [C/C++](#orge4c887e) - - [Python](#org7581457) - - [Arduino](#org12f4f8e) - - [Jupyter Notebook](#org89c123a) -- [Web Development](#orgd99c37c) - - [Web Mode](#org5e69fac) - - [Emmet](#orga772f5a) - - [JavaScript/TypeScript](#orgd0a57cb) -- [Miscellaneous](#orgb63ebc1) - - [Org](#org538f299) - - [Emacs Web Wowser](#org2c2bcfa) - - [LeetCode](#org6777e34) - - [Tetris](#org8631c71) - - [Speed Type](#org0f27872) - - [2048 Game](#org58173f3) - - [Zone](#org77f4eea) - - - +- [M-EMACS](#org51b029e) +- [About](#orgf3edd3e) + - [About README](#org1103313) + - [Installation](#orgf7c6eb9) + - [Modification](#orgdb0f9bf) + - [Spotted a Bug? Suggestions?](#orga38a426) + - [Special Thanks](#orge7839d3) +- [Startup](#org49d88c1) + - [Lexical-binding](#orgb592605) + - [Disable Unnecessary Interface](#org2d84db8) + - [Optimization](#orgda66897) + - [Load-Path](#org22ee3a3) + - [Define Constants](#org7f12fbb) +- [Package Management](#orge280c63) + - [Melpa Packages](#orgbcf368d) + - [Non-Melpa Packages](#orge5673e6) + - [Configure Package Management](#org7b65535) + - [Use-Package Wrapper](#orga47240d) + - [Auto Package Update](#orgaa42b94) +- [Global Functionalities](#orgb5d5704) + - [User Information](#org0c998f2) + - [Bindings](#orgc7ab5f4) + - [Directory and File Management](#orgdf6dac2) + - [Search](#orge41bfbe) + - [Avy](#org291d52a) + - [Ivy](#org2c4cdd8) + - [Shell](#org16a838e) + - [Winner](#org863aea7) + - [Which Key](#orge4a5de2) + - [Popup Kill Ring](#org579af20) + - [Undo Tree](#org9a9e5de) + - [Discover My Major](#org6b66d2b) + - [Ace Window](#org62becdb) + - [Configs](#org3982ed8) + - [More Functions](#orgf34d271) +- [User Interface Enhancements](#orgf82cb33) + - [Title Bar](#orga0baa1b) + - [All The Icons](#org3e5ffd4) + - [Doom Theme](#org9ac931f) + - [Doom Modeline](#org9464364) + - [Dashboard](#org461c8fb) + - [Fonts](#orge4ba9c7) + - [Diminish](#org7d07622) + - [Smooth Scroll](#orga0c142e) + - [Pretty Symbols](#org61450a4) + - [UI Configs](#org8158a64) +- [General Programming](#orgaa666c6) + - [Magit](#org0260e7a) + - [Projectile](#org6df4af0) + - [Treemacs](#org9ba8336) + - [Company](#orgb3be11e) + - [YASnippet](#orgb67dbde) + - [Flycheck](#org26eb429) + - [Dumb Jump](#org0ef3dc3) + - [Line Numbers](#org8002f9b) + - [Parenthesis](#org6bd3c64) + - [Indentation](#org397ab5e) + - [Format All](#orgd8a09cf) + - [Evil-Nerd-Commenter](#org6b3fe3c) + - [Iedit](#org0d62e1a) + - [Header](#org0aec7c7) + - [Jupyter Notebook](#org21b312e) +- [Programming](#org6c372ac) + - [Language Server Protocol](#org25e458c) + - [Java](#orgb6d3c01) + - [C/C++](#orgaffb346) + - [Python](#org4eff342) + - [Arduino](#org2984a8f) +- [Web Development](#org0ff7a31) + - [Web Mode](#org1dd1d09) + - [Emmet](#orgca53c21) + - [JavaScript/TypeScript](#orgfe5ba9f) +- [Miscellaneous](#orgdb1f89a) + - [Org](#orgc4c29e8) + - [Emacs Web Wowser](#org3de19de) + - [LeetCode](#orge9079a8) + - [Tetris](#org18e598f) + - [Speed Type](#orge85e20a) + - [2048 Game](#org5c66861) + - [Zone](#org4c24aee) + + + # Startup - + ## Lexical-binding @@ -186,7 +186,7 @@ Use lexical-binding. [Why?](https://nullprogram.com/blog/2016/12/22/) ``` - + ## Disable Unnecessary Interface @@ -200,7 +200,7 @@ This need to be in the beginning of initialization to smooth the experience. ``` - + ## Optimization @@ -232,7 +232,7 @@ Unset file name handler alist. ``` - + ## Load-Path @@ -254,7 +254,7 @@ Since all the configuration files are stored in `elisp/` folder, they need to be ``` - + ## Define Constants @@ -276,14 +276,14 @@ Since all the configuration files are stored in `elisp/` folder, they need to be ``` - + # Package Management Some packages are turned off because I don't use them very often. Please verify them in `init.el`. - + ## Melpa Packages @@ -302,7 +302,7 @@ Some packages are turned off because I don't use them very often. Please verify Load all Melpa packages in `elisp/` to `load-path` directly to reduce startup time. - + ## Non-Melpa Packages @@ -327,7 +327,7 @@ git submodule update ``` - + ## Configure Package Management @@ -347,7 +347,7 @@ git submodule update ``` - + ## Use-Package Wrapper @@ -401,7 +401,7 @@ The `use-package` wrapper. ``` - + ## Auto Package Update @@ -418,12 +418,12 @@ The `use-package` wrapper. ``` - + # Global Functionalities - + ## User Information @@ -435,7 +435,7 @@ The `use-package` wrapper. ``` - + ## Bindings @@ -460,7 +460,7 @@ The `use-package` wrapper. ``` - + ## Directory and File Management @@ -557,7 +557,7 @@ Create directory where Emacs stores backups files. ``` - + ## Search @@ -591,7 +591,7 @@ Create directory where Emacs stores backups files. ``` - + ## Avy @@ -609,7 +609,7 @@ Create directory where Emacs stores backups files. ``` - + ## Ivy @@ -666,7 +666,7 @@ Create directory where Emacs stores backups files. ``` - + ## Shell @@ -693,7 +693,7 @@ Create directory where Emacs stores backups files. ``` - + ## Winner @@ -715,7 +715,7 @@ Winner mode restores old window layout. ``` - + ## Which Key @@ -732,7 +732,7 @@ Winner mode restores old window layout. ``` - + ## Popup Kill Ring @@ -744,7 +744,7 @@ Winner mode restores old window layout. ``` - + ## Undo Tree @@ -758,7 +758,7 @@ Winner mode restores old window layout. ``` - + ## Discover My Major @@ -770,7 +770,7 @@ Winner mode restores old window layout. ``` - + ## Ace Window @@ -782,7 +782,7 @@ Winner mode restores old window layout. ``` - + ## Configs @@ -893,7 +893,7 @@ Better compilation configurations. ``` - + ## More Functions @@ -1069,12 +1069,12 @@ BEGIN and END are regexps which define the line range to use." ``` - + # User Interface Enhancements - + ## Title Bar @@ -1083,7 +1083,7 @@ BEGIN and END are regexps which define the line range to use." ``` - + ## All The Icons @@ -1127,7 +1127,7 @@ BEGIN and END are regexps which define the line range to use." ``` - + ## Doom Theme @@ -1145,7 +1145,7 @@ BEGIN and END are regexps which define the line range to use." ``` - + ## Doom Modeline @@ -1166,7 +1166,7 @@ BEGIN and END are regexps which define the line range to use." ``` - + ## Dashboard @@ -1246,7 +1246,7 @@ Open Dashboard Function ``` - + ## Fonts @@ -1286,7 +1286,7 @@ Change Font Function. ``` - + ## Diminish @@ -1297,7 +1297,7 @@ Change Font Function. ``` - + ## Smooth Scroll @@ -1320,7 +1320,7 @@ Smoothens Scrolling. ``` - + ## Pretty Symbols @@ -1344,7 +1344,7 @@ Pretty the Symbols. ``` - + ## UI Configs @@ -1372,12 +1372,12 @@ Pretty the Symbols. ``` - + # General Programming - + ## Magit @@ -1389,13 +1389,13 @@ Pretty the Symbols. ``` - + ## Projectile [Projectile](https://github.com/bbatsov/projectile), a Project Interaction Library for Emacs. -**Prerequisite**: If using Windows OS, [install](https://github.com/bmatzelle/gow/releases) Gow and add to `PATH`. +**Prerequisite**: If using Windows OS, install [Gow](https://github.com/bmatzelle/gow/releases) and add to `PATH`. [Gow](https://github.com/bmatzelle/gow) is a lightweight installer that installs useful open source UNIX applications compiled as native win32 binaries. Specifically, `tr` is needed for Projectile alien indexing. @@ -1415,7 +1415,7 @@ Pretty the Symbols. ``` - + ## Treemacs @@ -1500,7 +1500,7 @@ Pretty the Symbols. ``` - + ## Company @@ -1527,7 +1527,7 @@ Pretty the Symbols. ``` - + ## YASnippet @@ -1558,7 +1558,7 @@ Pretty the Symbols. ``` - + ## Flycheck @@ -1575,7 +1575,7 @@ Pretty the Symbols. ``` - + ## Dumb Jump @@ -1592,7 +1592,7 @@ Pretty the Symbols. ``` - + ## Line Numbers @@ -1611,7 +1611,7 @@ Display line numbers, and column numbers in modeline. ``` - + ## Parenthesis @@ -1691,7 +1691,7 @@ Match and automatically pair parenthesis. ``` - + ## Indentation @@ -1721,7 +1721,7 @@ Indentation Config ``` - + ## Format All @@ -1735,7 +1735,7 @@ Indentation Config ``` - + ## Evil-Nerd-Commenter @@ -1750,7 +1750,7 @@ Indentation Config ``` - + ## Iedit @@ -1763,7 +1763,7 @@ Indentation Config ``` - + ## Header @@ -1781,12 +1781,33 @@ Indentation Config ``` - + + +## Jupyter Notebook + +[Emacs IPython Notebook](https://github.com/millejoh/emacs-ipython-notebook), a [Jupyter](https://jupyter.org/) (formerly IPython) client in Emacs. + +- Currently Off + + +### Usage + +1. Execute `M-x ein:run` to launch a local Jupyter session. +2. Login with `M-x ein:login` to a local or remote session. +3. Open `.ipynb` file and press `C-c C-o`. + +```emacs-lisp +(def-package ein + :defer t) +``` + + + # Programming - + ## Language Server Protocol @@ -1802,7 +1823,6 @@ Indentation Config :init (setq lsp-auto-guess-root nil) (setq lsp-prefer-flymake nil) ; Use flycheck instead of flymake - (setq lsp-message-project-root-warning t) :hook ((java-mode . lsp) (python-mode . lsp) (js-mode . lsp) @@ -1873,7 +1893,7 @@ Indentation Config ``` - + ## Java @@ -1897,7 +1917,7 @@ Indentation Config ``` - + ## C/C++ @@ -1911,7 +1931,7 @@ Indentation Config Note: If Displaying `No LSP server for c-mode`, execute `M-x ielm` and verify clangd is installed using `(describe-variable *clangd*)` or `(executable-find lsp-clients-clangd-executable)`. - + ## Python @@ -1946,7 +1966,7 @@ Now, put `~/.emacs.d\python-language-server\output\bin\Release\win10-x64\publish ``` - + ## Arduino @@ -1983,41 +2003,20 @@ Now, put `~/.emacs.d\python-language-server\output\bin\Release\win10-x64\publish ``` - - -## Jupyter Notebook - -[Emacs IPython Notebook](https://github.com/millejoh/emacs-ipython-notebook), a [Jupyter](https://jupyter.org/) (formerly IPython) client in Emacs. - -- Currently Off - - -### Usage - -1. Execute `M-x ein:run` to launch a local Jupyter session. -2. Login with `M-x ein:login` to a local or remote session. -3. Open `.ipynb` file and press `C-c C-o`. - -```emacs-lisp -(def-package ein - :defer t) -``` - - - + # Web Development -**Prerequisite**: [Install](https://nodejs.org/en/download/) NodeJS and add to path. Execute following commands to enable LSP for JavaScript/TypeScript/HTML: +**Prerequisite**: Install [NodeJS](https://nodejs.org/en/download/) and add to path. Execute following commands to enable LSP for JavaScript/TypeScript/HTML: ```text -npm i -g typescript-language-server npm i -g typescript +npm i -g typescript-language-server npm install -g vscode-html-languageserver-bin ``` - + ## Web Mode @@ -2027,11 +2026,11 @@ npm install -g vscode-html-languageserver-bin (def-package web-mode :mode ("\\.phtml\\'" "\\.tpl\\.php\\'" "\\.[agj]sp\\'" "\\.as[cp]x\\'" - "\\.erb\\'" "\\.mustache\\'" "\\.djhtml\\'" "\\.[t]?html?\\'" "\\.tsx\\'")) + "\\.erb\\'" "\\.mustache\\'" "\\.djhtml\\'" "\\.[t]?html?\\'")) ``` - + ## Emmet @@ -2045,7 +2044,7 @@ npm install -g vscode-html-languageserver-bin ``` - + ## JavaScript/TypeScript @@ -2067,43 +2066,17 @@ npm install -g vscode-html-languageserver-bin ```emacs-lisp (def-package typescript-mode - :defer t - :commands (typescript-mode) - :bind (:map typescript-mode-map - ("M-." . tide-jump-to-definition)) - :init - (add-to-list 'auto-mode-alist '("\\.ts\\'" . typescript-mode)) - (defun setup-tide-ts () - "Setup tide for typescript." - (interactive) - (tide-setup) - (tide-hl-identifier-mode)) - (add-hook 'typescript-mode-hook #'setup-tide-ts)) -``` - - -### Tide - -[Tide](https://github.com/ananthakumaran/tide), a TypeScript Interactive Development Environment for Emacs. This is an alternative when LSP is not working. - -Tip: enter `M-.` to jump to definition. - -```emacs-lisp -(def-package tide - :defer t - :bind (:map tide-mode-map - ("M-." . nil)) - :commands (tide-setup) - :after (company flycheck)) + :mode "\\.ts\\'" + :commands (typescript-mode)) ``` - + # Miscellaneous - + ## Org @@ -2159,7 +2132,7 @@ Tip: enter `M-.` to jump to definition. ``` - + ## Emacs Web Wowser @@ -2195,7 +2168,7 @@ In Eww, hit & to browse this url system browser ``` - + ## LeetCode @@ -2218,7 +2191,7 @@ In Eww, hit & to browse this url system browser ``` - + ## Tetris @@ -2237,7 +2210,7 @@ Although [Tetris](https://www.emacswiki.org/emacs/TetrisMode) is part of Emacs, ``` - + ## Speed Type @@ -2249,7 +2222,7 @@ Although [Tetris](https://www.emacswiki.org/emacs/TetrisMode) is part of Emacs, ``` - + ## 2048 Game @@ -2261,7 +2234,7 @@ Although [Tetris](https://www.emacswiki.org/emacs/TetrisMode) is part of Emacs, ``` - + ## Zone diff --git a/elisp/init-custom.el b/elisp/init-custom.el index ae6ce7ab..8ed67778 100644 --- a/elisp/init-custom.el +++ b/elisp/init-custom.el @@ -58,7 +58,7 @@ ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(package-selected-packages - '(js2-mode 2048-game speed-type graphql request-deferred ox-gfm htmlize toc-org tide typescript-mode emmet-mode web-mode lsp-python-ms lsp-java dap-mode company-lsp lsp-ui lsp-mode iedit evil-nerd-commenter format-all smartparens dumb-jump flycheck yasnippet-snippets yasnippet company treemacs-projectile treemacs-magit treemacs projectile magit highlight-indent-guides diminish dashboard doom-modeline doom-themes all-the-icons-ivy all-the-icons-dired all-the-icons ace-window discover-my-major shell-here undo-tree popup-kill-ring which-key counsel amx ivy avy auto-package-update use-package))) + '(js2-mode 2048-game speed-type graphql request-deferred ox-gfm htmlize toc-org typescript-mode emmet-mode web-mode lsp-python-ms lsp-java dap-mode company-lsp lsp-ui lsp-mode iedit evil-nerd-commenter format-all smartparens dumb-jump flycheck yasnippet-snippets yasnippet company treemacs-projectile treemacs-magit treemacs projectile magit highlight-indent-guides diminish dashboard doom-modeline doom-themes all-the-icons-ivy all-the-icons-dired all-the-icons ace-window discover-my-major shell-here undo-tree popup-kill-ring which-key counsel amx ivy avy auto-package-update use-package))) (provide 'init-custom) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/elisp/init-lsp.el b/elisp/init-lsp.el index 467aa264..50a50889 100644 --- a/elisp/init-lsp.el +++ b/elisp/init-lsp.el @@ -55,7 +55,6 @@ :init (setq lsp-auto-guess-root nil) (setq lsp-prefer-flymake nil) ; Use flycheck instead of flymake - (setq lsp-message-project-root-warning t) :hook ((java-mode . lsp) (python-mode . lsp) (js-mode . lsp) diff --git a/elisp/init-webdev.el b/elisp/init-webdev.el index 812c273a..1ce19ef0 100644 --- a/elisp/init-webdev.el +++ b/elisp/init-webdev.el @@ -47,7 +47,7 @@ (def-package web-mode :mode ("\\.phtml\\'" "\\.tpl\\.php\\'" "\\.[agj]sp\\'" "\\.as[cp]x\\'" - "\\.erb\\'" "\\.mustache\\'" "\\.djhtml\\'" "\\.[t]?html?\\'" "\\.tsx\\'")) + "\\.erb\\'" "\\.mustache\\'" "\\.djhtml\\'" "\\.[t]?html?\\'")) ;; -WebModePac ;; EmmetPac @@ -65,29 +65,10 @@ ;; TypeScriptPac (def-package typescript-mode - :defer t - :commands (typescript-mode) - :bind (:map typescript-mode-map - ("M-." . tide-jump-to-definition)) - :init - (add-to-list 'auto-mode-alist '("\\.ts\\'" . typescript-mode)) - (defun setup-tide-ts () - "Setup tide for typescript." - (interactive) - (tide-setup) - (tide-hl-identifier-mode)) - (add-hook 'typescript-mode-hook #'setup-tide-ts)) + :mode "\\.ts\\'" + :commands (typescript-mode)) ;; -TypeScriptPac -;; TidePac -(def-package tide - :defer t - :bind (:map tide-mode-map - ("M-." . nil)) - :commands (tide-setup) - :after (company flycheck)) -;; -TidePac - (provide 'init-webdev) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; init-webdev.el ends here diff --git a/init.el b/init.el index d776d475..dc3910bb 100644 --- a/init.el +++ b/init.el @@ -172,12 +172,13 @@ (require 'init-header) -(require 'init-lsp) +;; (require 'init-ein) ;; Programming -;; (require 'init-arduino) -;; (require 'init-ein) +(require 'init-lsp) + +;; (require 'init-arduino) ;; Web Development (require 'init-webdev) diff --git a/init.org b/init.org index 96a8b2f7..a946653a 100644 --- a/init.org +++ b/init.org @@ -104,13 +104,13 @@ - [[Evil-Nerd-Commenter][Evil-Nerd-Commenter]] - [[Iedit][Iedit]] - [[Header][Header]] + - [[Jupyter Notebook][Jupyter Notebook]] - [[Programming][Programming]] - [[Language Server Protocol][Language Server Protocol]] - [[Java][Java]] - [[C/C++][C/C++]] - [[Python][Python]] - [[Arduino][Arduino]] - - [[Jupyter Notebook][Jupyter Notebook]] - [[Web Development][Web Development]] - [[Web Mode][Web Mode]] - [[Emmet][Emmet]] @@ -347,7 +347,7 @@ ** Projectile [[https://github.com/bbatsov/projectile][Projectile]], a Project Interaction Library for Emacs. - *Prerequisite*: If using Windows OS, [[https://github.com/bmatzelle/gow/releases][install]] Gow and add to =PATH=. + *Prerequisite*: If using Windows OS, install [[https://github.com/bmatzelle/gow/releases][Gow]] and add to =PATH=. [[https://github.com/bmatzelle/gow][Gow]] is a lightweight installer that installs useful open source UNIX applications compiled as native win32 binaries. Specifically, =tr= is needed for Projectile alien indexing. #+INCLUDE: "~/.emacs.d/elisp/init-projectile.el" src emacs-lisp :range-begin "ProjPac" :range-end "-ProjPac" :lines "49-61" @@ -406,26 +406,35 @@ ** Header [[https://www.emacswiki.org/emacs/header2.el][Header2]], a support for creation and update of file headers. #+INCLUDE: "~/.emacs.d/elisp/init-header.el" src emacs-lisp :range-begin "Header2Pac" :range-end "-Header2Pac" :lines "46-54" +** Jupyter Notebook + [[https://github.com/millejoh/emacs-ipython-notebook][Emacs IPython Notebook]], a [[https://jupyter.org/][Jupyter]] (formerly IPython) client in Emacs. + - Currently Off +*** Usage + 1. Execute =M-x ein:run= to launch a local Jupyter session. + 2. Login with =M-x ein:login= to a local or remote session. + 3. Open =.ipynb= file and press =C-c C-o=. + #+INCLUDE: "~/.emacs.d/elisp/init-ein.el" src emacs-lisp :range-begin "EINPac" :range-end "-EINPac" :lines "47-49" + * Programming ** Language Server Protocol [[https://github.com/emacs-lsp/lsp-mode][LSP]], a client/library for the [[https://microsoft.github.io/language-server-protocol/][Language Server Protocol]]. *** LSP Mode - #+INCLUDE: "~/.emacs.d/elisp/init-lsp.el" src emacs-lisp :range-begin "LSPPac" :range-end "-LSPPac" :lines "52-66" + #+INCLUDE: "~/.emacs.d/elisp/init-lsp.el" src emacs-lisp :range-begin "LSPPac" :range-end "-LSPPac" :lines "52-65" *** LSP UI [[https://github.com/emacs-lsp/lsp-ui][LSP UI]], provides all the higher level UI modules of lsp-mode, like flycheck support and code lenses. - #+INCLUDE: "~/.emacs.d/elisp/init-lsp.el" src emacs-lisp :range-begin "LSPUI" :range-end "-LSPUI" :lines "69-95" + #+INCLUDE: "~/.emacs.d/elisp/init-lsp.el" src emacs-lisp :range-begin "LSPUI" :range-end "-LSPUI" :lines "68-94" *** Company LSP [[https://github.com/tigersoldier/company-lsp][Company SLP]], a Company completion backend for lsp-mode. - #+INCLUDE: "~/.emacs.d/elisp/init-lsp.el" src emacs-lisp :range-begin "LSPCompany" :range-end "-LSPCompany" :lines "98-102" + #+INCLUDE: "~/.emacs.d/elisp/init-lsp.el" src emacs-lisp :range-begin "LSPCompany" :range-end "-LSPCompany" :lines "97-101" *** DAP [[https://github.com/emacs-lsp/dap-mode][DAP]], a client/library for the [[https://code.visualstudio.com/api/extension-guides/debugger-extension][Debug Adapter Protocol]]. - #+INCLUDE: "~/.emacs.d/elisp/init-lsp.el" src emacs-lisp :range-begin "DAPPac" :range-end "-DAPPac" :lines "105-111" + #+INCLUDE: "~/.emacs.d/elisp/init-lsp.el" src emacs-lisp :range-begin "DAPPac" :range-end "-DAPPac" :lines "104-110" ** Java *** LSP Java [[https://github.com/emacs-lsp/lsp-java][LSP Java]], Emacs Java IDE using [[https://projects.eclipse.org/projects/eclipse.jdt.ls][Eclipse JDT Language Server]]. Note that this package is dependant on [[https://github.com/tkf/emacs-request][Request]]. *Prerequisite*: [[https://maven.apache.org/download.cgi][Install]] Maven and add to =PATH=. - #+INCLUDE: "~/.emacs.d/elisp/init-lsp.el" src emacs-lisp :range-begin "LSPJavaPac" :range-end "-LSPJavaPac" :lines "117-126" + #+INCLUDE: "~/.emacs.d/elisp/init-lsp.el" src emacs-lisp :range-begin "LSPJavaPac" :range-end "-LSPJavaPac" :lines "116-125" ** C/C++ *Prerequisite*: - Compile using == or =compile=. The command =gcc -o .exe .c .c ...= is to compile C code into =.exe=. @@ -449,7 +458,7 @@ Change the value after =-r= flag (=win10-x64=) depending on your architecture and OS. See Microsoft's [[https://docs.microsoft.com/en-us/dotnet/core/rid-catalog][Runtime ID Catalog]] for the correct value for your OS. Now, put =~/.emacs.d\python-language-server\output\bin\Release\win10-x64\publish= in your =PATH=. - #+INCLUDE: "~/.emacs.d/elisp/init-lsp.el" src emacs-lisp :range-begin "LSPPythonPac" :range-end "-LSPPythonPac" :lines "129-138" + #+INCLUDE: "~/.emacs.d/elisp/init-lsp.el" src emacs-lisp :range-begin "LSPPythonPac" :range-end "-LSPPythonPac" :lines "128-137" ** Arduino *** Arduino Mode [[https://github.com/bookest/arduino-mode][Arduino mode]], a major mode for editing Arduino sketches. @@ -459,19 +468,11 @@ [[https://github.com/yuutayamada/company-arduino][Company Arduino]], a set of configuration to let you auto-completion by using irony-mode, company-irony and company-c-headers on arduino-mode. - Currently Off #+INCLUDE: "~/.emacs.d/elisp/init-arduino.el" src emacs-lisp :range-begin "CompanyArduinoPac" :range-end "-CompanyArduinoPac" :lines "56-62" -** Jupyter Notebook - [[https://github.com/millejoh/emacs-ipython-notebook][Emacs IPython Notebook]], a [[https://jupyter.org/][Jupyter]] (formerly IPython) client in Emacs. - - Currently Off -*** Usage - 1. Execute =M-x ein:run= to launch a local Jupyter session. - 2. Login with =M-x ein:login= to a local or remote session. - 3. Open =.ipynb= file and press =C-c C-o=. - #+INCLUDE: "~/.emacs.d/elisp/init-ein.el" src emacs-lisp :range-begin "EINPac" :range-end "-EINPac" :lines "47-49" * Web Development - *Prerequisite*: [[https://nodejs.org/en/download/][Install]] NodeJS and add to path. Execute following commands to enable LSP for JavaScript/TypeScript/HTML: + *Prerequisite*: Install [[https://nodejs.org/en/download/][NodeJS]] and add to path. Execute following commands to enable LSP for JavaScript/TypeScript/HTML: #+BEGIN_SRC text - npm i -g typescript-language-server npm i -g typescript + npm i -g typescript-language-server npm install -g vscode-html-languageserver-bin #+END_SRC ** Web Mode @@ -486,12 +487,7 @@ #+INCLUDE: "~/.emacs.d/elisp/init-webdev.el" src emacs-lisp :range-begin "Js2Pac" :range-end "-Js2Pac" :lines "61-64" *** TypeScript Mode [[https://github.com/emacs-typescript/typescript.el][TypeScript mode]], a feature that offers TypeScript support for Emacs. - #+INCLUDE: "~/.emacs.d/elisp/init-webdev.el" src emacs-lisp :range-begin "TypeScriptPac" :range-end "-TypeScriptPac" :lines "67-80" -*** Tide - [[https://github.com/ananthakumaran/tide][Tide]], a TypeScript Interactive Development Environment for Emacs. This is an alternative when LSP is not working. - - Tip: enter =M-.= to jump to definition. - #+INCLUDE: "~/.emacs.d/elisp/init-webdev.el" src emacs-lisp :range-begin "TidePac" :range-end "-TidePac" :lines "83-89" + #+INCLUDE: "~/.emacs.d/elisp/init-webdev.el" src emacs-lisp :range-begin "TypeScriptPac" :range-end "-TypeScriptPac" :lines "67-70" * Miscellaneous ** Org [[https://orgmode.org/][Org]], a Emacs built-in tool for keeping notes, maintaining TODO lists, planning projects, and authoring documents with a fast and effective plain-text system.