General refactor + cleanup; update TODO.org

This commit is contained in:
Henrik Lissner 2017-05-14 00:25:04 +02:00
parent b86634e79f
commit 200846ee35
7 changed files with 63 additions and 47 deletions

View file

@ -1,4 +1,4 @@
[![Main screenshot](https://raw.githubusercontent.com/hlissner/.emacs.d/screenshots/main.png?raw=true)][sc] [![Main screenshot](/../screenshots/main.png?raw=true)][sc]
[![MIT](https://img.shields.io/badge/license-MIT-green.svg)](./LICENSE) [![MIT](https://img.shields.io/badge/license-MIT-green.svg)](./LICENSE)
[![DOOM v2.0.2](https://img.shields.io/badge/DOOM-v2.0.2-blue.svg)](./init.el) [![DOOM v2.0.2](https://img.shields.io/badge/DOOM-v2.0.2-blue.svg)](./init.el)
@ -11,13 +11,13 @@
This is an Emacs configuration for a stubborn, melodramatic and shell-dwelling This is an Emacs configuration for a stubborn, melodramatic and shell-dwelling
vimmer disappointed with the text-editor status quo. vimmer disappointed with the text-editor status quo.
Doom tries to look and act like modern editors (whatever that means to me on any Doom tries to: look and act like modern editors (whatever that means to me on
given day), espouse vim's modal philosophy as best it can, and strive to surpass any given day), espouse vim's modal philosophy as best it can and strive to
vim in any way possible. It fits my needs as a software developer, indie game surpass vim in any way possible. It fits my needs as a software developer, indie
developer, scientist and doom enthusiast. game developer, scientist and doom enthusiast.
It was tailored for **MacOS 10.11+** and **Arch Linux 4.7+**, and It was tailored for **Emacs 25.1+** on **MacOS 10.11+** and **Arch Linux 4.7+**.
**exclusively** for Emacs 25.1+. I use [vim] everywhere else. I use [vim] everywhere else.
## Installation ## Installation
@ -54,26 +54,30 @@ To get a picture of what's in here, check out:
### Highlights ### Highlights
* A [popup management system](core/core-popups.el) using **[shackle]** for * A [popup window management system](core/core-popups.el) using **[shackle]** to
temporary or disposable buffers. minimize mental context switching while dealing with temporary or disposable
* Per-project code-style settings with **[editorconfig]**. buffers.
* Workspaces, tab emulation & session persistence with **[persp-mode]**. * Per-project code-style settings with **[editorconfig]**. Let someone else
* Project and workspace-restricted buffer navigation and functions. argue about tabs versus spaces (spaces > tabs, btw).
* Workspaces & session persistence with **[persp-mode]**. This provides tab
emulation that vaguely resembles vim tabs.
* Project & workspace-aware buffer navigation and functions.
* A vim-centric environment with **[evil-mode]** * A vim-centric environment with **[evil-mode]**
* 2-character motions (ala vim-seek/vim-sneak) with **[evil-snipe]** * 2-character motions (ala vim-seek/vim-sneak) with **[evil-snipe]**
* Sublime Text-esque [multiple cursors][sc-multiedit] with * Sublime Text-esque [multiple cursors][sc-multiedit] with
**[evil-multiedit]** **[evil-mc]** and **[evil-multiedit]**
* Repeat (most) motions with <kbd>SPC</kbd> and * Repeat (most) motions with <kbd>SPC</kbd> and
<kbd>shift</kbd>+<kbd>SPC</kbd> (backwards) <kbd>shift</kbd>+<kbd>SPC</kbd> (backwards)
* Global <kbd>C-x</kbd> omnicompletion * <kbd>C-x</kbd> omnicompletion in insert mode
* Fast search utilities: * Fast search utilities:
* Project and buffer navigation with **[ivy]** * Project and buffer navigation with **[ivy]**
* File browser sidebar with **[neotree]** * File browser sidebar with **[neotree]**
* Project search (& replace) with **[counsel-ag]** (and **[wgrep]**) * Project text search powered by [the silver searcher][ag] and [ripgrep][rg]
(see `:ag` and `:rg`)
* Project search & replace with **[wgrep]**
* Interactive buffer search with **[swiper]** * Interactive buffer search with **[swiper]**
* REPLs & inline/live code evaluation (using **[quickrun]** and * REPLs & inline/live code evaluation (using **[quickrun]**) with languages
**[repl-toggle]**) for many languages including Ruby, Python, PHP, JS, Elisp, support for Ruby, Python, PHP, JS, Elisp, Haskell, Lua and more.
Haskell and Lua.
* [Minimalistic diffs in the fringe][sc-diffs] with **[git-gutter-fringe]**. * [Minimalistic diffs in the fringe][sc-diffs] with **[git-gutter-fringe]**.
* A do-what-I-mean jump-to-definition implementation that tries its darnest to * A do-what-I-mean jump-to-definition implementation that tries its darnest to
find the definition of what you're looking at. It tries major-mode commands, find the definition of what you're looking at. It tries major-mode commands,
@ -105,6 +109,7 @@ even elisp tips.
[doom-theme]: https://github.com/hlissner/emacs-doom-theme [doom-theme]: https://github.com/hlissner/emacs-doom-theme
[dumb-jump]: https://melpa.org/#/dumb-jump [dumb-jump]: https://melpa.org/#/dumb-jump
[editorconfig]: http://editorconfig.org/ [editorconfig]: http://editorconfig.org/
[evil-mc]: https://github.com/gabesoft/evil-mc
[evil-mode]: https://melpa.org/#/evil [evil-mode]: https://melpa.org/#/evil
[evil-multiedit]: https://melpa.org/#/evil-multiedit [evil-multiedit]: https://melpa.org/#/evil-multiedit
[evil-snipe]: https://melpa.org/#/evil-snipe [evil-snipe]: https://melpa.org/#/evil-snipe
@ -113,7 +118,6 @@ even elisp tips.
[neotree]: https://melpa.org/#/neotree [neotree]: https://melpa.org/#/neotree
[persp-mode]: https://melpa.org/#/persp-mode [persp-mode]: https://melpa.org/#/persp-mode
[quickrun]: https://melpa.org/#/quickrun [quickrun]: https://melpa.org/#/quickrun
[repl-toggle]: https://melpa.org/#/repl-toggle
[sc-diffs]: https://github.com/hlissner/.emacs.d/blob/screenshots/git-gutter.png?raw=true [sc-diffs]: https://github.com/hlissner/.emacs.d/blob/screenshots/git-gutter.png?raw=true
[sc-multiedit]: https://raw.githubusercontent.com/hlissner/evil-multiedit/screenshots/main.gif?raw=true [sc-multiedit]: https://raw.githubusercontent.com/hlissner/evil-multiedit/screenshots/main.gif?raw=true
[sc]: https://github.com/hlissner/.emacs.d/tree/screenshots [sc]: https://github.com/hlissner/.emacs.d/tree/screenshots

View file

@ -5,10 +5,10 @@
+ [-] Work-in-progress + [-] Work-in-progress
+ [X] Complete + [X] Complete
** Planned [6/87] ** Planned [6/73]
+ [0/11] Potential plugins + [0/11] Potential plugins
+ [-] [[https://github.com/syl20bnr/vi-tilde-fringe][vi-tilde-fringe]]: subtle, vim-ish empty-line indicator
+ [ ] [[https://github.com/emacs-lsp/lsp-mode][lsp-mode]]: client for MS Language Server Protocol, keep an eye on this + [ ] [[https://github.com/emacs-lsp/lsp-mode][lsp-mode]]: client for MS Language Server Protocol, keep an eye on this
+ [ ] lang/javascript: [[https://github.com/NicolasPetton/Indium][indium]] (IDE), keep an eye on this
+ [ ] lang/javascript: [[https://github.com/codesuki/add-node-modules-path][add-node-modules-path]] (adds node_modules to ~exec-path~) + [ ] lang/javascript: [[https://github.com/codesuki/add-node-modules-path][add-node-modules-path]] (adds node_modules to ~exec-path~)
+ [ ] lang/org: [[https://github.com/Malabarba/latex-extra][orgit]] (org links to magit buffers) + [ ] lang/org: [[https://github.com/Malabarba/latex-extra][orgit]] (org links to magit buffers)
+ [ ] lang/org: [[https://github.com/jkitchin/org-ref][org-ref]] (bibtex/citation helper) + [ ] lang/org: [[https://github.com/jkitchin/org-ref][org-ref]] (bibtex/citation helper)
@ -17,10 +17,8 @@
+ [ ] lang/latex: [[**https://github.com/jsinglet/latex-preview-pane][latex-preview-pane]] + [ ] lang/latex: [[**https://github.com/jsinglet/latex-preview-pane][latex-preview-pane]]
+ [ ] lang/julia: [[ https://github.com/dennisog/julia-shell-mode][julia-shell]] (unsure if better than inferior-julia in julia-mode) + [ ] lang/julia: [[ https://github.com/dennisog/julia-shell-mode][julia-shell]] (unsure if better than inferior-julia in julia-mode)
+ [ ] lang/python: [[https://github.com/Wilfred/pyimport][pyimport]] + [ ] lang/python: [[https://github.com/Wilfred/pyimport][pyimport]]
+ [ ] An image plugin for zooming images at point + [ ] An image plugin for zooming images at point (maybe [[https://github.com/mhayashi1120/Emacs-imagex][emacs-imagex]])
+ https://github.com/mhayashi1120/Emacs-imagex ? + [0/4] New modules
+ [0/5] New modules
+ [ ] tools/regex (PCRE regex editor, perhaps use ~re-builder~ & ~pcre2el~?)
+ [ ] app/finance (maybe settle for org-mode tables?) + [ ] app/finance (maybe settle for org-mode tables?)
+ [ ] app/irc + [ ] app/irc
+ [-] app/crm + [-] app/crm
@ -90,23 +88,33 @@
+ [ ] rss + [ ] rss
+ [ ] twitter + [ ] twitter
+ [ ] present + [ ] present
+ [-] core-ui: switch from nlinum => linum
+ [-] ui/doom-modeline: different faces for buffer path and file name ** 2.0.3 [4/18]
+ [ ] lang/org: fix janky visual line motions (~evil-next-visual-line~, etc)
+ [ ] lang/org: fix janky cursor positioning when manipulating org-table cells
+ [ ] lang/org: don't move cursor when realigning org tables
+ [ ] lang/org: certain characters/keys--when typed in a table--cause the cell
to shrink (smartparens pairs & non-self-insert-command, likely)
+ [ ] core-ui: replace ~winner-mode~ (too unreliable)
+ [ ] Generalize ~doom-visual-bell~ by basing its background off a face
+ [ ] ui/doom-modeline: extend ~media-info~ segment for other media + [ ] ui/doom-modeline: extend ~media-info~ segment for other media
+ [ ] completion/ivy: flexible column width for ~+ivy/tasks~ + [ ] completion/ivy: flexible column width for ~+ivy/tasks~
+ [ ] Extend ~evil-escape~ to ~evil-multiedit-insert-state~ + [ ] features/evil: extend ~evil-escape~ to ~evil-multiedit-insert-state~
+ [ ] ui/doom (nav-flash): don't flash when activating evil-multiedit or in eshell/term buffers + [ ] ui/doom: fix nav-flash on evil-multiedit or in eshell/term buffers
+ [ ] Write ~describe-setting~ for ~def-setting!~ definitions. + [ ] Write ~describe-setting~ for ~def-setting!~ definitions.
+ [ ] lang/org: fix janky cursor positioning when manipulating table cells
+ [ ] lang/org: don't move cursor when realigning tables
+ [ ] lang/org: certain characters/keys, when typed in a table, cause the cell to shrink (smartparens pairs & non-self-insert-command, likely)
+ [ ] Fix invisible buffer-info segment in modeline for terminal Emacs + [ ] Fix invisible buffer-info segment in modeline for terminal Emacs
+ [ ] tools/upload: add ~+upload/open-remote-file~ command to open current file on the remote (with TRAMP) + [ ] tools/upload: add ~+upload/open-remote-file~ command to open current file
+ [ ] Generalize ~doom-visual-bell~ by basing its background off a face on the remote (with TRAMP)
+ [ ] tools/regex: PCRE regex editor, maybe ~re-builder~ & ~pcre2el~?
+ [X] Fix help-mode links opening new popups #ui
Added ~:noclone~ property to popup rules
+ [X] Different faces for buffer path and file name #ui
+ [X] Switch from nlinum => linum #ui
+ [X] [[https://github.com/syl20bnr/vi-tilde-fringe][vi-tilde-fringe]]: subtle, vim-ish empty-line indicator #ui
** 2.0.2 [67/67] ** 2.0.2 [67/67]
+ [X] Update screenshots + [X] Update screenshots
+ [X] ui/doom: polish git-gutter fringe bitmaps (deleted appears truncated) + [X] ui/doom: polish git-gutter fringe bitmaps (deleted bitmap appears truncated)
+ [X] ui/doom-modeline: fix ~0/0~ display in modeline (leftover anzu state) + [X] ui/doom-modeline: fix ~0/0~ display in modeline (leftover anzu state)
+ [X] send-to-REPL workflow: does it still work? (see ~:repl~ & ~+eval/repl-send-region~) + [X] send-to-REPL workflow: does it still work? (see ~:repl~ & ~+eval/repl-send-region~)
+ [X] completion/ivy: restore ag searching (for compressed files) + [X] completion/ivy: restore ag searching (for compressed files)

View file

@ -224,7 +224,7 @@ file."
;; For a distractions-free-like UI, that dynamically resizes margets and can ;; For a distractions-free-like UI, that dynamically resizes margets and can
;; center a buffer. ;; center a buffer.
(def-package! visual-fill-column (def-package! visual-fill-column
:commands (visual-fill-column-mode) :commands visual-fill-column-mode
:config :config
(setq-default visual-fill-column-center-text nil (setq-default visual-fill-column-center-text nil
visual-fill-column-width fill-column)) visual-fill-column-width fill-column))

View file

@ -95,6 +95,7 @@ there are problems.")
create-lockfiles nil create-lockfiles nil
history-length 1000 history-length 1000
make-backup-files nil make-backup-files nil
undo-tree-auto-save-history t
;; files ;; files
abbrev-file-name (concat doom-local-dir "abbrev.el") abbrev-file-name (concat doom-local-dir "abbrev.el")
auto-save-list-file-name (concat doom-cache-dir "autosave") auto-save-list-file-name (concat doom-cache-dir "autosave")

View file

@ -204,6 +204,7 @@
;; and separators/dividers ;; and separators/dividers
("^ *\\(-----+\\)$" 1 'org-meta-line) ("^ *\\(-----+\\)$" 1 'org-meta-line)
;; custom #hashtags & @at-tags for another level of organization ;; custom #hashtags & @at-tags for another level of organization
;; TODO refactor this into a single rule
("\\s-\\(#[^ \n]+\\)" 1 'org-tag) ("\\s-\\(#[^ \n]+\\)" 1 'org-tag)
("\\s-\\(@[^ \n]+\\)" 1 'org-special-keyword)))) ("\\s-\\(@[^ \n]+\\)" 1 'org-special-keyword))))
@ -224,20 +225,18 @@
(sp-local-pair "{" nil)) (sp-local-pair "{" nil))
;; The standard unicode characters are usually misaligned depending on the ;; The standard unicode characters are usually misaligned depending on the
;; font. This bugs me. Personally, the markdown #-marks for headlines are more ;; font. This bugs me. Personally, markdown #-marks for headlines are more
;; elegant, so use those. ;; elegant, so we use those.
(def-package! org-bullets (def-package! org-bullets
:commands org-bullets-mode :commands org-bullets-mode
:init (add-hook 'org-mode-hook 'org-bullets-mode) :init (add-hook 'org-mode-hook #'org-bullets-mode)
:config (setq org-bullets-bullet-list '("#"))) :config (setq org-bullets-bullet-list '("#")))
;; Keybinds ;; Keybinds
(map! (:map org-mode-map (map! (:map org-mode-map
"RET" nil "RET" #'org-return-indent
"C-j" nil "C-j" nil
"C-k" nil "C-k" nil)
:i [remap doom/inflate-space-maybe] #'org-self-insert-command
:i "RET" #'org-return-indent)
(:map evil-org-mode-map (:map evil-org-mode-map
:n "RET" #'+org/dwim-at-point :n "RET" #'+org/dwim-at-point
@ -266,10 +265,10 @@
:i [backtab] #'+org/dedent-or-prev-field :i [backtab] #'+org/dedent-or-prev-field
:n "<tab>" #'+org/toggle-fold :n "<tab>" #'+org/toggle-fold
:v "<S-tab>" #'+snippets/expand-on-region
:nv "j" #'evil-next-visual-line :nv "j" #'evil-next-visual-line
:nv "k" #'evil-previous-visual-line :nv "k" #'evil-previous-visual-line
:v "<S-tab>" #'+snippets/expand-on-region
:i "M-a" (λ! (evil-visual-state) (org-mark-element)) :i "M-a" (λ! (evil-visual-state) (org-mark-element))
:n "M-a" #'org-mark-element :n "M-a" #'org-mark-element

View file

@ -355,6 +355,10 @@
:i [remap delete-backward-char] #'doom/deflate-space-maybe :i [remap delete-backward-char] #'doom/deflate-space-maybe
:i [remap newline] #'doom/newline-and-indent :i [remap newline] #'doom/newline-and-indent
(:after org-mode
(:map org-mode-map
:i [remap doom/inflate-space-maybe] #'org-self-insert-command))
;; Make ESC quit all the things ;; Make ESC quit all the things
(:map (minibuffer-local-map (:map (minibuffer-local-map
minibuffer-local-ns-map minibuffer-local-ns-map
@ -381,6 +385,7 @@
(:map help-map (:map help-map
"l" #'find-library "l" #'find-library
"L" #'view-lossage
"h" #'describe-face ; overwrite `view-hello-file' "h" #'describe-face ; overwrite `view-hello-file'
"g" nil)) "g" nil))

View file

@ -41,8 +41,6 @@
;; <https://github.com/hlissner/emacs-doom-theme> ;; <https://github.com/hlissner/emacs-doom-theme>
(def-package! doom-themes :demand t (def-package! doom-themes :demand t
:config :config
(setq doom-one-linum-height 0.9)
(load-theme +doom-theme t) (load-theme +doom-theme t)
;; Since Fira Mono doesn't have an italicized variant, highlight it instead ;; Since Fira Mono doesn't have an italicized variant, highlight it instead
@ -137,4 +135,5 @@
(fringe-helper-define 'git-gutter-fr:deleted 'bottom (fringe-helper-define 'git-gutter-fr:deleted 'bottom
"X......." "X......."
"XX......" "XX......"
"XXX.....")) "XXX....."
"XXXX...."))