EchoAbstract / emacs

Emacs Config (actually public this time)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Brian Wilson’s emacs config

This is Brian’s emacs config, it’s geared towards my specific use cases, in particular:

  • I’m a C++/Web programmer in my day job for Oblong Industries
    • I also use Python, React, and Electron
  • I heavily use both linux, mac, and windows… but I cut my teeth on *BSD distributions
  • Outside of work I use C++, C, Ada, Go, Julia, Python, and JS/HTML
  • Despite my initial resistence to it, I’m a git convert and use it for everything
  • While I’d like to use org-mode more, compatibility forces me to focus more on markdown
  • I really like scheme and lisp, but can’t really justify major focus on them, hwoever slime, geiser, and lisp machines have really influenced how I develop
  • I used to use emacs for everything, including mail and newsreading, but gmail is somewhat difficult to use with emacs so I don’t do that much anymore :-(
  • Finally, I keep work specific code in a separate repo and load it on-demand based on if that repo is present

If any of this sounds useful, read on!

External Dependencies

LSP

These are needed for LSP modes:

bash
npm i -g bash-language-server
CSS
npm install -g vscode-css-languageserver-bin
HTML
npm install -g vscode-html-languageserver-bin
Typescript
npm i -g typescript-language-server; npm i -g typescript
VUE
npm install -g vue-language-server
Python
~pip install ‘python-language-server[all]’~
cquery
https://github.com/cquery-project/cquery
Go
https://github.com/saibing/bingo/wiki/Install

Go

These need to be evaluated based on the LSP support

  • go get -u golang.org/x/tools/cmd/...
godef
go get -u github.com/rogpeppe/godef/...
  • go get -u github.com/nsf/gocode
goimports
go get -u golang.org/x/tools/cmd/goimports
guru
go get -u golang.org/x/tools/cmd/guru
flymake
go get -u github.com/dougm/goflymake

Platform Support

Windows

I’ve found that having certain unicode chars in the mode line causes all updates on windows to be really slow, so I’ve removed my usage of those chars.

Major Modes

C/C++

Other notes

I like bright output in compilation, so I colorize the compilation output, and I jump to the end (which is great if there’s a small number of errors, but terrible if there is a large number of errors.

I also force subword-mode, as I code with case.

Go

Dependencies

  • go get -u golang.org/x/tools/cmd/...
  • go get -u github.com/rogpeppe/godef/...
  • go get -u github.com/nsf/gocode
  • go get -u golang.org/x/tools/cmd/goimports
  • go get -u golang.org/x/tools/cmd/guru
  • go get -u github.com/dougm/goflymake

Finally

TODOs

Org HTML Export
Not working with this config, but works with no config…
macOS
Add support for the touch bar :-D

Included 3rd party code

License

Unless otherwise noted all code is under the GPL v3 (see LICENSE.txt)

About

Emacs Config (actually public this time)

License:GNU General Public License v3.0


Languages

Language:Emacs Lisp 100.0%