You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: developer-guide-en.org
+9-4Lines changed: 9 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,6 +12,7 @@ Easy/light/good solutions are provided instead of difficult/heavy/perfect soluti
12
12
- [[#introduction][Introduction]]
13
13
- [[#code-completion][Code completion]]
14
14
- [[#code-navigation][Code navigation]]
15
+
- [[#language-server-protocol][Language Server Protocol]]
15
16
- [[#editing][Editing]]
16
17
- [[#git][Git]]
17
18
- [[#syntax-check][Syntax check]]
@@ -38,6 +39,10 @@ Use [[https://github.com/syohex/emacs-counsel-gtags][counsel-gtags]] if =company
38
39
Use [[https://github.com/redguardtoo/counsel-etags][counsel-etags]] if =company-etags= is already used.
39
40
40
41
Exclude patterns can be used to filter the candidates. For example, input "k1 !neg1 neg2" means candidates should contain string "k1" but neither "neg1" or "neg2".
42
+
* Language Server Protocol
43
+
Right now [[https://www.emacswiki.org/emacs/LanguageServerProtocol][Language Server Protocol]] is very popular. It provides code completion, code navigation , and many other features. It could be a bit slower than more light weight solutions.
44
+
45
+
But in Emacs world, you could use multiple solutions at the same time. For example, you could use =company-gtags= from =company-mode= AND =company-capf= from [[https://github.com/emacs-lsp/lsp-mode/][lsp-mode]] in one project. See the documentation of =company-backends= of =company-mode= for details.
41
46
* Editing
42
47
Use [[https://github.com/emacs-evil/evil][Evil]] because most time your are moving cursor in left/right/up/down direction. Evil (Vim emulator) uses =hjkl= to do these things.
43
48
@@ -111,11 +116,11 @@ Make sure your project is using git.
111
116
112
117
All developer will encounter the problem to find file with similar file name. C++ developers need find "window.hpp" from "window.cpp". Javascript developers need find "Component.test.js" from "Component.js".
113
118
114
-
The easiest solution is just sorting the candidates from =counsel-git= by string distance. See [[https://www.emacswiki.org/emacs/LevenshteinDistance][LevenshteinDistance]].
119
+
The easiest solution is to sort the candidates from =counsel-git= by [[https://www.emacswiki.org/emacs/LevenshteinDistance][string distance]].
115
120
116
-
There are tons of handy commands from these counsel/swiper/ivy (=counsel-imenu=, =counsel-recentf=, =counsel-ibuffer=, ...).
121
+
There are tons of handy commands from counsel/swiper/ivy (=counsel-imenu=, =counsel-recentf=, =counsel-ibuffer=, ...).
117
122
118
-
API =ivy-read= from =ivy= is useful. Here is a simple demo on how to use =ivy-read=,
123
+
API =ivy-read= from =ivy= is very useful. Here is a simple demo on how to use =ivy-read=,
119
124
120
125
#+begin_src elisp
121
126
(require 'ivy)
@@ -125,7 +130,7 @@ API =ivy-read= from =ivy= is useful. Here is a simple demo on how to use =ivy-re
125
130
(message "I chose %s" choice)))
126
131
#+end_src
127
132
* Sub-windows
128
-
I usually open 4~8 sub-windows and use [[https://github.com/deb0ch/emacs-winum][winum]] to move focus between sub-windows.
133
+
I usually open 4 sub-windows and use [[https://github.com/deb0ch/emacs-winum][winum]] to move cursor between sub-windows.
129
134
130
135
You need some package to save and load sub-windows layout. You can start from [[https://github.com/wasamasa/eyebrowse][eyebrowse]].
0 commit comments