Giter Club home page Giter Club logo

.emacs.d's Introduction

image

.emacs.d's People

Contributors

jinnovation avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

ursulogalvan

.emacs.d's Issues

Convert all `jjin-*-map` to pretty-hydra

No real reason not to do this, plus you get all the benefits of hydra.

.emacs.d/README.org

Lines 506 to 518 in deb7e64

#+BEGIN_SRC emacs-lisp
(define-prefix-command 'jjin-vc-map)
(bind-key "C-c v" 'jjin-vc-map)
(define-prefix-command 'jjin-comment-map)
(bind-key "C-c c" 'jjin-comment-map)
(define-prefix-command 'jjin-term-map)
(bind-key "C-c t" 'jjin-term-map)
(define-prefix-command 'jjin-buffer-map)
(bind-key "C-c b" 'jjin-buffer-map)
#+END_SRC

Display Git branch in Projectile vterms

projectile-run-vterm opens vterm in the current project root. The resulting buffer is clearly associated w/ the project in some way, since projectile-kill-buffers kills it. However, stuff like the current Git branch do not show up in the modeline. If I can get that enabled, that'd obviate a lot of the need to display such info in the terminal prompt.

Experiment with Pylyzer as Python language server

Historically have used python-lsp-server. For whatever reason (maybe misconfiguration on my part?) this has always required me to reinstall the language server package on each virtualenv that I set up for my projects (otherwise stuff like jump-to-def doesn't work). To make things worse, I've always needed to install all companion "extensions" to the language server as well, including:

This is extremely cumbersome past a small handful of Python codebases.

Pylyzer looks like a promising alternative that might have a less finicky install story. If that proves to be the case, replace current use of python-lsp-server with that.

C-a: Increment number, or toggle boolean

C-a is currently bound to evil-numbers/inc-at-pt which only works on numbers.

I'm thinking to extend the notion of "incrementing" to "flipping" boolean values. So for example C-a on a line containing True would flip it to False; C-a again would flip it back to True.

Implement: switch-to-scratch-or-create

I accidentally kill *scratch* all the time. Having to type out *scratch* out every single time is a pain.

Single-key access to scratch buffer -- recreating it if needed -- is small QoL thing that would spark joy.

Org-Roam: Template for reading notes

I'd like to start taking notes for interesting talks, articles, etc. that I read.

I'd like to associate each note w/ #+filetags: :notes: by default.

Integration tests

Some baseline verification to guard against regressions due to upgrading new Emacs versions.

Extended testing bindings

Define a new Hydra/Transient-prefix for testing in Projectile projects. Namely, should have the following heads/suffixes:

  • Manual, which would fall back to projectile-test-project;
  • DWIM, which would:
    • If current buffer is an implementation buffer, find the corresponding test file (a la projectile-toggle-between-implementation-and-test) and pass that to the default test command;
    • If current buffer is a test buffer, pass buffer's file path to the default test command.

Odd Org-mode new-bullet list behavior

Cursor seems to move behind the newly-created bullet on creation. Possibly related to Org-mode + Evil compatibility. See GIF.

weird-list-behavior

EDIT: Nothing to do with Evil. Issue occurs even after turn-off-evil-mode.

Experiment with Homebrew "version" of python-lsp-server

See also: #48.

The Homebrew version of python-lsp-server recently added several of the optional extensions, e.g. for Black and Mypy, to the Homebrew recipe for python-lsp-server. Let's try using that to install python-lsp-server first and see how things like local package discovery work w/ the Homebrew-installed version.

Success Criteria

Enable advice of `compile` to send command to project's vterm

compilation-mode is ill-suited for projects that integrate stuff like Docker builds into testing, due to docker's liberal use of redrawing (with no obvious way to disable).

Would be nice to instead have commands like projectile-test-project:

  • Call projectile-run-vterm if project's vterm doesn't already exist;
  • Switch to that vterm in other-window;
  • pushd;
  • cd to projectile-project-root;
  • Enter and execute the command;
  • Wait for command completion;
  • popd

Explore options for display of "global" configs, e.g. Emacs 28's global mode line

https://www.reddit.com/r/emacs/comments/ou0g6p/emacs_has_a_global_mode_line/

Could be useful for displaying "global" configurations, e.g. kubectl context or GCP project or even the time -- the kind of stuff one would typically put in their terminal prompt.

This information is not a good for the standard mode line for several reasons:

  1. Display "follows" whichever window happens to be in focus, which is counter to the "global" nature of such configurations;
  2. Display implies that the information is locally scoped to the buffer under focus, which is both incorrect and misleading.

Use community-maintained Python language server

The Palantir Python language server is unmaintained now (palantir/python-language-server#935) and work has shifted over to a community-maintained fork at https://github.com/python-lsp/python-lsp-server.

Once work concludes on their end to have plugins, e.g. for mypy and flake8, either update to support the new python-lsp-server or fork in order to do so (python-lsp/python-lsp-server#27), it'll be time for me to update my own config accordingly to purge all remnants of the former lang server.

At minimum, I'll need the following plugins:

  • pyls-black
  • pyls-isort
  • pyls-mypy

mu4e: Formalize credential management

Every time I have to re-establish mu4e configs (new computer etc) I have to look up all over again exactly how the hell I did things last time. This is easily the biggest impediment to my actually continuing to use mu4e, despite there truly not being another mail client out there that I actually like more.

Either find a way to streamline the process or just document it.

Function to export Roam node w/o links

I like to export Roam nodes to html for copying to slack etc but the links to other nodes always causes it to error (unresolvable from Org's perspective). Plus they wouldn't be useful to readers even if they worked.

There's a fn to ignore errors on links when exporting but that simply strips the link out entirely, which isn't ideal. Ideally we'd be able to strip the link but leave the link text and export accordingly.

Explore eglot

Given that I don't actually use a lot of the LSP-mode functionality, maybe the built-in simpler implementation would be easier to configure/maintain.

Containerize Python LSP

Include all dependencies and plugins, e.g. pyls-isort et al., so that no longer have to deal with virtualenv shenanigans or ambiguities or making sure to download everything and keep it organized.

Find solution for running `docker` cmds in compilation/comint

docker run et al do fancy redraw stuff that doesn't play nicely w/ compilation-mode, e.g. "refreshed" output gets output one after the other as new output entirely. This is annoying for Docker-intensive projects for which I'd like to use M-x projectile-run etc to kick off Docker or Docker-adjacent commands.

coterm looks promising here in that it purportedly enables "terminal emulation" for comint etc. Worth looking into and experimenting with.

Org-mode major mode Hydra

Currently have a Hydra for Org-Roam buffers (informally assigned the jjin/org-roam-mode mode).

I'd like to have a Hydra for general Org-mode buffers. The Hydra for jjin/org-roam-mode could be an extension of that one.

Starter command: org-footnote-action.

org-roam: Link nodes containing nodes

Consider a node, e.g. list.org, that contains other nodes, like so:

#+TITLE: List of Nodes
:PROPERTIES:
:ID: wfytuhwuyfthyuwft
:END:

* Item
  :PROPERTIES:
  :ID: some-other-id
  :END:

I would like the List of Nodes node to be linked to Item at the schema level. Currently I don't believe this is possible, since node linking relies explicitly on bona fide links, e.g. [[id:some-other-id][label]], which is not present here.

I'd like to extend Org-Roam such that nodes-containing-nodes are recorded as referencing their constituent nodes, and the former are correspondingly recorded as backrefs for the latter.

If there's a native solution for this already, all the better. It's worth asking in Org-Roam forums about this.

Notes

  • org-roam-reflinks-get might be useful reference here

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.