Commit Graph

467 Commits

Author SHA1 Message Date
7a205aa74e chore(windows): fold siren-buffer-move module into siren-windmove module 2020-08-25 01:47:42 +01:00
c21df804ed chore(editor): fold siren-fci module into siren-display-fill-column module 2020-08-25 01:45:05 +01:00
04b252438b feat(workspaces): hide workspace name in modeline 2020-08-25 01:41:50 +01:00
dccb57747e feat(windows): use new windmove-swap-* functions on Emacs 27 and later
Fallback onto buffer-move package for Emacs versions prior to 27.
2020-08-20 22:13:38 +01:00
dc23ff532f docs: fix typo in a comment 2020-08-20 21:47:20 +01:00
098143191d fix(lang): Disable ruby-specific C-c C-b binding
C-C C-b is globally defined to run projectile-ibuffer.
2020-08-19 11:28:05 +01:00
00823307ac fix(lang): fix issue with json-mode when native-comp is used
It seems when native-comp is used, the kill-buffer-hook in json-snatcher
is registered, even though the library itself isn't registered. And the
`jsons-remove-buffer` function does not have a autoload declaration.

Hence we use use-package to manually create a autoload for the function.
2020-08-19 11:23:04 +01:00
658daa99d6 feat(core): add support for native-comp/gccemacs 2020-08-19 00:44:57 +01:00
4fbf607950 fix(workspaces): Improve reliability of desktop restore
Ignore some frame parameters which I don't care about being stored into
the desktop file, and would rather have the values from the loaded
config.
2020-08-19 00:43:07 +01:00
67498da953 fix(projects): ensure treemacs uses the central cache directory 2020-08-19 00:41:33 +01:00
88ab8f9007 fix(windows): set zoom-window keybindings correctly 2020-08-19 00:41:00 +01:00
e533a3b6d5 fix(lang): remove poly-markdown as it was glitchy 2020-08-19 00:39:59 +01:00
5ce5740b21 feat(workspaces): add siren-desktop module for managing emacs sessions 2020-08-16 14:52:45 +01:00
c1ddbe37aa feat(workspaces): add siren-tab-bar module with custom tab-bar-mode setup 2020-08-16 14:39:13 +01:00
5bddc53795 chore(projects): remove needless require calls
These require calls were for with-eval-after-load expressions, but
there's no need to require the relevant modules.
2020-08-16 14:21:01 +01:00
9bd34f805f feat(projects): use all-the-icons in treemacs 2020-08-16 14:21:01 +01:00
bab7a08fc4 chore(workspaces): create siren-workspace-map to handle C-z prefix
Previously I've always kinda "hacked" things to get C-z prefixes for
various workspace-related packages to work. Now it's finally setup
correctly with a custom siren-workspace-map keymap bound to C-z, and
relevant packages adding keybindings to it.
2020-08-16 14:21:00 +01:00
208394ef00 feat(projects): tweak projectile keybindings
- Bind projectile-switch-to-buffer to `C-c b` to compliment `C-x b`.
- Remove keybindings I never use.
2020-08-16 14:21:00 +01:00
a8ec880b69 feat(shell): improve vterm-mode configuration
- Enable switching windows with my custom M-i, M-k, M-j, and M-l
  windmove keybindings
- Disable hl-line-mode for vterm buffers. The hl-line would constantly
  flicker in an annoying manner while typing.
2020-08-16 14:21:00 +01:00
7ed3e92dbb feat(core): use buffer local hl-line-mode instead of global-hl-line-mode
This allows specific major-modes to disable hl-line-mode, which is
desired some terminal/shell modes like vterm where the hl-line flickers
constantly while typing.
2020-08-16 14:21:00 +01:00
3602399165 chore(workspaces): improve persp-mode index switching keybinding code 2020-08-16 14:21:00 +01:00
d1f4e13886 feat(lang): add vue-mode for working with .vue files 2020-08-11 13:47:21 +01:00
d1e1f3f81c chore(lang): Cleaner lsp-mode setup for golang 2020-08-11 13:47:21 +01:00
6cca25c66c fix(navigation): Update setup for recent changes to helm 2020-08-11 13:47:21 +01:00
4ba09d49b6 feat(lang): Remove robe package in favor of lsp-mode for Ruby 2020-08-11 13:47:20 +01:00
8376b71b7c feat(lang): Improve markdown formatting on save
Add additional CLI flags for prettier that so formatted markdown is
wrapped to 80 columns.
2020-07-21 18:27:55 +01:00
a04e57f887 fix(workspaces): Recent persp now works after renaming persps 2020-07-21 18:23:27 +01:00
4338d85291 feat(shell): Switch shell-pop from ansi-term to vterm
It performs much butter, and renders htop basically as fast as a normal
terminal emulator.
2020-07-14 02:27:21 +01:00
7d0ff606a3 feat(lang): Set new rubocopfmt-include-unsafe-cops option to t 2020-07-13 21:48:56 +01:00
20597149bb fix(helm): Helm failure when tramp-methods variable is not defined 2020-07-13 21:48:32 +01:00
efd0b421e3 feat(lsp): Improve lsp-mode performance, support latest 7.x version
company-lsp is no longer supported by lsp-mode for providing completions
to company, instead company-capf should be used which it built-in to
company itself.
2020-07-04 18:52:33 +01:00
bbc98decea fix(editor): Make undo-tree a bit more terminal friendly 2020-06-27 14:20:50 +01:00
9b5c22f9e2 feat(lang): Enable terminal-friendly quote toggle for ruby-mode 2020-06-27 14:20:23 +01:00
2fa061bdec feat(windows): Enable terminal friendly zoom-window keybinding 2020-06-27 14:19:31 +01:00
acb2d6f5fa fix(navigation): Dired disk usage command was unreliable on Linux 2020-06-07 16:19:49 +01:00
ecc278b83b feat(navigation): Add file/directory size commands to Dired
There's two different variants, both callable via M-? in dired
buffers. Without a prefix arg it will use `siren-dired-get-disk-usage`
which uses the external `du` command to get disk usage, or "space on
disk" for item at point or marked files and/or directories.

If called with a prefix (C-u M-?) it will instead use
`siren-dired-get-size` which is implemented in pure elisp, and
recursively gets the actual file sizes for item at point or marked files
and/or directories.

As the prefix variant is written in pure elisp, it is quite a bit slower
for very large directories with thousands of files.
2020-06-07 15:56:07 +01:00
e586192a92 chore(lang): Add missing require to siren-terraform module 2020-06-07 15:55:46 +01:00
84bdd610ca feat(lang): Add jinja2-mode for Jinja2 templates 2020-06-07 15:55:00 +01:00
1ef8570f05 fix(lang): Work around for whitespace-mode issue with caddyfile-mode 2020-06-07 15:54:26 +01:00
a74610689e feat(lang): Language aware syntax highlight of markdown code-blocks
Enable polymode within code-blocks in Markdown files. Effectively, it
allows code-blocks of various languages to be handled by their
respective major modes, allowing correct syntax highlighting, snippets,
and other features to work as you would expect.
2020-06-07 15:50:49 +01:00
7b72c21fc6 chore(workspaces): Improve persp-mode switch to index macro/defuns 2020-06-05 20:23:47 +01:00
e6b52a534a feat(lang): Add caddyfile-mode for Caddy config files 2020-06-05 12:44:03 +01:00
984b9fb3aa feat(workspaces): Improve persp-mode "UI" helpers
- Improve the switch to previous / recent list of persps.
- Add a indexes when showing list of current persps.
- Add `C-z <num>` keybindings to switch to persp by index.
2020-06-02 11:55:07 +01:00
bee04d384c docs(comment): Explain why we use reformatter for terraform-mode
Terraform-mode already comes with it's own
terraform-format-on-save-mode, but the way it inserts the corrected
source into the buffer often causes weird cursor movement which is
annoying.
2020-06-01 09:06:55 +01:00
0810857131 feat(windows): Integrate windmove with tmux
When Emacs is launched within Tmux, and a windmove command fails (due to
it reaching the left/right/top/bottom edge of frame, instead trigger a
Tmux pane switch in that direction.

This allows a nearly seamless window/pane switching experience between
Emacs and Tmux.

It does require the following configuration in Tmux to work properly:

    # Enable smart pane switching that's Emacs aware.
    is_emacs='echo "#{pane_current_command}" | grep -iqE "(^|\/)emacs$"'

    # Use Alt-[i/k/j/l] keys without prefix key to switch panes if current pane is
    # not running Emacs. If the pane is running Emacs, let Emacs receive the
    # keybindings instead.
    bind -n M-i if-shell "$is_emacs" "send-keys M-i" "select-pane -U"
    bind -n M-k if-shell "$is_emacs" "send-keys M-k" "select-pane -D"
    bind -n M-j if-shell "$is_emacs" "send-keys M-j" "select-pane -L"
    bind -n M-l if-shell "$is_emacs" "send-keys M-l" "select-pane -R"
    bind -T copy-mode M-i if-shell "$is_emacs" "send-keys M-i" "select-pane -U"
    bind -T copy-mode M-k if-shell "$is_emacs" "send-keys M-k" "select-pane -D"
    bind -T copy-mode M-j if-shell "$is_emacs" "send-keys M-j" "select-pane -L"
    bind -T copy-mode M-l if-shell "$is_emacs" "send-keys M-l" "select-pane -R"
    bind -T copy-mode-vi M-i if-shell "$is_emacs" "send-keys M-i" "select-pane -U"
    bind -T copy-mode-vi M-k if-shell "$is_emacs" "send-keys M-k" "select-pane -D"
    bind -T copy-mode-vi M-j if-shell "$is_emacs" "send-keys M-j" "select-pane -L"
    bind -T copy-mode-vi M-l if-shell "$is_emacs" "send-keys M-l" "select-pane -R"
2020-05-30 17:01:21 +01:00
e6ff06ea2c feat(lang): Add terraform-doc package 2020-05-30 16:50:41 +01:00
bf4c49dd1f fix(lang): terraform-mode now formats buffers on save correctly 2020-05-30 16:49:57 +01:00
41d80de4fb chore(lang): Various minor improvements for ruby-mode 2020-05-30 16:48:36 +01:00
88ceeaa7c7 fix(themes): Handle highlight-indent-guides when switching themes 2020-05-30 16:46:36 +01:00
a3a8c575dc chore(lang): Disable solargraph's multi-root feature
This means that each project gets a separate solargraph server, rather
than one server handles all projects. This does mean more memory is
consumed, but it overall it makes lsp-mode perform much faster, and be
more stable.
2020-05-26 23:49:46 +01:00