Commit Graph

462 Commits

Author SHA1 Message Date
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
aee6af6128 fix(lang): Switch back to formatting Ruby with rubocop-daemon
Using `lsp-format-buffer` is a little bit unreliable, and for some
reason it also skips some cops.
2020-05-24 00:23:18 +01:00
0f13518f91 feat(lang): Add support for Haskell via haskell-mode 2020-05-24 00:22:54 +01:00
3c8fe70d8e feat(persp-mode): Enable switching to most recent persp
Keep a list of most recently visited persps whenever you switch, and
enable switching back and forth between the current and most recently
visited persp.

Also when killing current persp, switch to the most recently visited
persp, instead of back to the default/nil persp.

Minor bug remaining is that the when killing current persp, the echo
area shows all persps like usual when switching, but it includes the
persp that was just killed, despite it already being killed.
2020-05-24 00:18:30 +01:00
c220e65a99 feat(lang): Format shell scripts with shfmt on save 2020-05-24 00:16:53 +01:00
e4c864319a feat(lang): Add module for terraform-mode package
And enable formatting terraform files with `terraform fmt` through the
use of reformatter.
2020-05-24 00:15:32 +01:00