Commit Graph

151 Commits

Author SHA1 Message Date
a9919a5360 Fix #1703: blank dired over TRAMP
When the remote system does not have GNU ls installed.
2019-10-07 22:12:16 -04:00
81ee250c09 Minor refactor & revision across the board 2019-09-03 00:59:46 -04:00
07dfe2703c Fix void-function diff-hl-magit-post-refresh error 2019-09-02 12:42:02 -04:00
3c4252ffe7 Merge branch 'develop' into dired 2019-09-02 00:51:52 -04:00
db5049e13e emacs/dired: minor fix 2019-08-27 00:14:51 -07:00
3d1569515b emacs/vc: minor reformatting
And fix ;;;###package cookies. They aren't necessary for after! or
use-package! blocks.
2019-08-27 00:05:12 -04:00
c5c500e033 emacs/dired: ranger already come with omit-mode 2019-08-26 00:01:37 -07:00
ebff3ff6e0 emacs/dired: use diff-hl instead of dired-k 2019-08-25 23:20:17 -07:00
5b656ec56c emacs/vc: refactor enforcement of git-commit conventions
To make it easier for users to customize.
2019-08-23 20:29:35 -04:00
88293c962a Update emacs/dired/README.org header 2019-08-15 15:41:09 -04:00
984bf08835 emacs/dired: add README.org
Signed-off-by: Guillaume Pagnoux <guillaume.pagnoux@lse.epita.fr>
2019-08-13 14:57:26 +02:00
42869ece55 Remove git-timemachine-show-commit fix
The problem was fixed upstream.

See https://gitlab.com/pidu/git-timemachine/issues/77
2019-07-30 12:51:20 +02:00
a89c004551 Refactor git-timemachine-show-commit fix (again) 2019-07-29 03:18:38 +02:00
19ecf8e46a Correct last inline hook defuns
See a3e262c7 for rationale
2019-07-28 16:10:53 +02:00
aee1c851fc Refactor git-timemachine-show-commit fix
As per https://gitlab.com/pidu/git-timemachine/issues/77
2019-07-28 02:32:25 +02:00
82ae3a73f3 def-advice!->defadvice! & conform to new advice conventions
This commit does two things:

- Renames def-advice! to defadvice!, in the spirit of naming convenience
  macros after the function/macro they enhance or replace.
- Correct the names of advice functions to indicate visibility and
  intent. A public advice function like doom-set-jump-a is meant to be
  used elsewhere. A private one like +dired--cleanup-header-line-a
  shouldn't -- it likely won't work anywhere but the function(s) it was
  made to advise.
2019-07-23 17:24:56 +02:00
76cacb5bfe 💥 Rename def-package! -> use-package!
Calling this pivotal macro "def-package!" has frequently been a source
of confusion. It is a thin wrapper around use-package, and it should be
obvious that it is so. For this reason, and to match the naming
convention used with other convenience macros/wrappers, it is now
use-package!.

Also changes def-package-hook! -> use-package-hook!

The old macros are now marked obsolete and will be removed when straight
integration is merged.
2019-07-23 12:50:45 +02:00
c795a988e6 Conform many modules to new conventions 2019-07-23 12:30:47 +02:00
d7ed52f3c7 Add ui/hydra module
And conforms all existing hydras to the naming convention for
interactive commands, e.g.

  +vc-gutter-hydra -> +vc/gutter-hydra
2019-07-22 23:51:12 +02:00
952e9dd220 emacs/dired: auto-revert & reduce prompting 2019-07-22 02:37:45 +02:00
96bff1076f emacs/vc: bind gtc to git-timemachine-show-commit 2019-07-22 02:37:45 +02:00
fdcb259bcd Major refactor of Doom core files
- Remove core-os and move many of its settings out to other core
  libraries, where they belong
- Significantly improve commenting & compartmentalization of many
  settings
- Correct some mis-named public hooks (that were named as if they were
  private)
- Move the vast majority of optimizations to "Optimizations" section in
  core.el
- Don't activate xclip-mode or osx-clipboard-mode if we're accessing
  Emacs through an SSH connection (does more bad than good there)
- Add fast-but-imprecise-scrolling = t
- Set bidi-display-reordering = 'left-to-right, at the recommendation of
  an Emacs dev. Apparently setting it to nil is undefined, as Emacs is
  designed to always assume it's set; setting it explicitly to
  left-to-right will still do what was originally intended by turning it
  off: to reduce line/text scans for bidirectional text, which gives us
  a moderate boost in general runtime snappiness
- Set inhibit-compacting-fon-caches = t on windows (where it struggles
  especially with icon fonts)
- Disables "literal" mode for very large files (because I will be
  backporting so-long.el from Emacs 27 in the next commit)
2019-07-22 02:30:38 +02:00
149b2617b0 💥 revise hook/var fns naming convention (2/2)
This is second of three big naming convention changes. In this commit,
we change the naming conventions for hook functions and variable
functions:

1. Replace the bar | to indicate a hook function with a -h suffix, e.g.

     doom|init-ui -> doom-init-ui-h
     doom|run-local-var-hooks -> doom-run-local-var-hooks-h

2. And add a -fn suffix for functions meant to be set on variables,
   e.g.

     (setq magit-display-buffer-function #'+magit-display-buffer-fn)

See ccf327f8 for the reasoning behind these changes.
2019-07-22 02:30:38 +02:00
51d3b1b424 💥 revise advice naming convention (1/2)
This is first of three big naming convention updates that have been a
long time coming. With 2.1 on the horizon, all the breaking updates will
batched together in preparation for the long haul.

In this commit, we do away with the asterix to communicate that a
function is an advice function, and we replace it with the '-a' suffix.
e.g.

  doom*shut-up -> doom-shut-up-a
  doom*recenter -> doom-recenter-a
  +evil*static-reindent -> +evil--static-reindent-a

The rationale behind this change is:

1. Elisp's own formatting/indenting tools would occasionally struggle
   with | and * (particularly pp and cl-prettyprint). They have no
   problem with / and :, fortunately.
2. External syntax highlighters (like pygmentize, discord markdown or
   github markdown) struggle with it, sometimes refusing to highlight
   code beyond these symbols.
3. * and | are less expressive than - and -- in communicating the
   intended visibility, versatility and stability of a function.
4. It complicated the regexps we must use to search for them.
5. They were arbitrary and over-complicated to begin with, decided
   on haphazardly way back when Doom was simply "my private config".

Anyhow, like how predicate functions have the -p suffix, we'll adopt the
-a suffix for advice functions, -h for hook functions and -fn for
variable functions.

Other noteable changes:
- Replaces advice-{add,remove}! macro with new def-advice!
  macro. The old pair weren't as useful. The new def-advice! saves on a
  lot of space.
- Removed "stage" assertions to make sure you were using the right
  macros in the right place. Turned out to not be necessary, we'll
  employ better checks later.
2019-07-22 02:27:45 +02:00
ba71d95066 emacs/vc: add git-timemachine-show-commit fix
See https://gitlab.com/pidu/git-timemachine/issues/77
2019-07-18 13:13:31 +02:00
64d88bb956 fix: file not found in autoload 2019-06-21 16:45:07 +08:00
47530bd19f emacs/vc: refactor
And declare vc, vc-annotate & smerge-mode as built-ins (for
doom/help-packages).
2019-06-10 09:38:56 +02:00
a6490020c7 emacs/dired: remove duplicate evil keybinds
Redundant with evil-collection-dired
2019-06-10 09:38:55 +02:00
36a8e02857 Fix +vc/git-browse-region-or-line
git-link-use-commit = t breaks +vc/git-browse-region-or-line.
2019-06-10 09:38:55 +02:00
ed69d580fb emacs/dired: fix ranger oddities
Added two hacks to fix two obnoxious issues Ranger has, having to do
with it failing to clean up after itself. In particular:

1. A left over mouse-1 bind that traps focus in a particular
   window (easy to get around with keyboard-based window switch
   commands, but this renders the mouse useless),

2. And the lingering ranger header bar (i.e. it doesn't clean up
   header-line-format).

This commit also ensures Deer overrides dired if +ranger is enabled.
2019-05-20 21:09:12 -04:00
e76765e0b8 emacs/dired: add dired-rsync
And bind it to C-c C-r
2019-05-20 21:09:12 -04:00
c4af1a807c emacs/dired: enable diredfl & dired-k in ranger/deer 2019-05-20 21:09:12 -04:00
57697efb62 emacs/dired: add diredfl & refactor
- Adds C-c C-e for invoking wdired
- Adds diredfl for more colors in dired (and disables dired-k's coloring
  based on mtime, which was confusing)
2019-05-20 21:09:12 -04:00
0674e4b4b0 Remove :emacs imenu module
Some of it was moved into core as reasonable defaults, but the rest of
it doesn't warrant a whole module dedicated to it.
2019-05-19 02:18:00 -04:00
8c65a63b1c Move eshell, term & vterm modules to :term 2019-05-19 02:17:59 -04:00
40d2d4d222 Minor tweaks & byte-compiler offerings 2019-05-15 20:53:11 -04:00
c549091ce5 ui/popup: polish default rules
- Establish popup naming convention:
  - *doom:name* -> a temporary editing buffer (requires interaction)
  - *doom name* -> a transient buffer (no interaction required)
2019-05-15 15:22:09 -04:00
75777756e1 Remove redundant dired sort hook #1414
This still means dired will be unsorted for BSD ls users, but that's
acceptable (for now).
2019-05-14 18:45:38 -04:00
6b69eaa397 Minor refactors across the board 2019-04-26 17:42:44 -04:00
a4c5396558 Add better-jumper
Replaces evil's jumplist; makes its functionality available for non evil
users.
2019-04-24 18:16:04 -04:00
77e4cc4d58 💥 Remove :feature category
:feature was a "catch-all" category. Many of its modules fit better in
other categories, so they've been moved:

- feature/debugger -> tools/debugger
- feature/evil -> editor/evil
- feature/eval -> tools/eval
- feature/lookup -> tools/lookup
- feature/snippets -> editor/snippets
- feature/file-templates -> editor/file-templates
- feature/workspaces -> ui/workspaces

More potential changes in the future:

- A new :term category for terminal emulation modules (eshell, term and
  vterm).
- A new :os category for modules dedicated to os-specific functionality.
  The :tools macos module would fit here, but so would modules for nixos
  and arch.
- A new :services category for web-service integration, like wakatime,
  twitter, elfeed, gist and pastebin services.
2019-04-24 18:16:04 -04:00
0a1de03ca1 Remove eshell/term from dtrt excluded modes
Unnecessary because their buffers don't make it through
doom|detect-indentation's condition anyway.
2019-03-28 01:56:09 -04:00
2dc52bc9be 💥 Replace exec-path-from-shell w/ 'bin/doom env'
IMPORTANT: This is a breaking update for Mac users, as your shell
environment will no longer be inherited correctly (with the removal of
exec-path-from-shell). The quick fix is: 'bin/doom env refresh'. Also,
the set-env! autodef now does nothing (and is deprecated), be sure to
remove calls to it in your config.

Smaller changes:
+ This update also adds --no-* switches to doom quickstart
+ Includes general improvements to the documentation of several bin/doom
  commands.
+ Moves doom/reload* commands to core/autoload/config.el
+ doom/reload-project has been removed (it didn't actually do anything)

The breaking change:
This update adds an "envvar file" to Doom Emacs. This file is generated
by `doom env refresh`, populated with variables scraped from your shell
environment (from both non-interactive and interactive sessions). This
file is then (inexpensively) loaded at startup, if it exists.

+ The file is manually generated with `doom env refresh`.
+ It can be regenerated automatically whenever `doom refresh` is run by
  running `doom env enable` (`doom env clear` will reverse this and
  delete the env file).
+ `doom quickstart` will ask if you want to auto-generate this envvar
  file. You won't need it if you're confident Emacs will always be
  started from the correct environment, however.
+ Your env file can be reloaded from a running Emacs session with `M-x
  doom/reload-env`. Note: this won't work if the Emacs session you're
  running it in doesn't have a correct SHELL set. i.e. don't use this to
  create your first env file!

The idea isn't mine -- it's borrowed from Spacemacs -- and was
introduced to me in #1053 by @yurimx. I was impressed with it. Prior to
this, I was unhappy with exec-path-from-shell (no hate to the dev, I
understand its necessity), and 'doom patch-macos' wasn't ideal for mac
users (needed to be reapplied every time you update Emacs). What's more,
many users (even Linux users) had to install exec-path-from-shell
anyway.

This solution suffers from none of their shortcomings. More reliable
than patch-macos, more performant and complete than
exec-path-from-shell, and easily handled by bin/doom.
2019-03-28 01:56:09 -04:00
f02e7faefb emacs/dired: ranger-show-literal = nil 2019-03-09 19:56:48 -05:00
c07f43bba3 Remove --group-directories-first arg for bsd ls 2019-03-02 13:49:39 -05:00
7b2e80c711 Remove bash, zsh, fish from eshell-visual-commands
It would affect non-interactive shell scripts run through these
shells (like homebrew).
2019-03-02 02:04:11 -05:00
6d3df42352 More conservative electric-indent-local-mode
Prevent them from propagating to derived modes (I'm looking at you c
modes!)
2019-03-02 01:36:53 -05:00
6fc7b8c1c4 Better electric-indent uninhibiter
Will now work in C modes as well as Csharp, Java and Python; possibly
others that forcibly set electric-indent-inhibit.
2019-02-27 18:38:28 -05:00
7d0caf3efd New editor/fold module
Extracted from feature/evil and emacs/hideshow.
2019-02-18 00:47:46 -05:00
3dcd253f71 Remove emacs/ediff & move to core-ui 2019-02-17 21:54:26 -05:00