Commit graph

194 commits

Author SHA1 Message Date
Vincent Ambo
082ed2a74f chore(cheddar): Clean up all clippy lints
Change-Id: I5544c10e964b57891fce6ea01f09eeec406e9bef
Reviewed-on: https://cl.tvl.fyi/c/depot/+/510
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-20 03:00:46 +00:00
Vincent Ambo
e27b0a3013 feat(cheddar): Add Sourcegraph-compatible highlighting server
Sourcegraph uses a component called syntect_server to syntax-highlight
source files.

Since we already have custom syntaxes, overrides and configuration we
might as well use them with Sourcegraph!

This implements the syntect_server "protocol" (it's just a single
endpoint) so that we can swap out the syntect_server component with
cheddar.

Note: There's a few clippy lints here, but they're being solved in a
followup commit because I wanted to take care of all of them at
once (not just the ones introduced in this change).

Change-Id: Ib518a2fa1b9fee299fe599482403599583cac479
Reviewed-on: https://cl.tvl.fyi/c/depot/+/509
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-20 02:59:20 +00:00
Vincent Ambo
9266b3947d feat(emacs-pkgs/tvl): Add #'tvl-depot-status function
This function opens the depot in magit. By default the depot path is
assumed to be `/depot`, but that is made available as a customise
option that users can override.

Change-Id: Iefc127cad515dbae330d7af3aa69a0c53aa02015
Reviewed-on: https://cl.tvl.fyi/c/depot/+/504
Reviewed-by: glittershark <grfn@gws.fyi>
2020-06-19 17:54:46 +00:00
Vincent Ambo
e7f8bdd548 feat(emacs-pkgs/tvl): Add magit shortcuts for reviews & co
Introduces two new shortcuts in the magit popup for pushing:

* R: Push for review
* S: Push to submit

The existing "P" command remains, but has been renamed to
"rubberstamp" and documented with a warning.

To make this work across people's different setups, customisation
options for TVL-specific code are being added.

Change-Id: I48e75db55b5f793342fc898093629e437f58dcb2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/503
Reviewed-by: glittershark <grfn@gws.fyi>
2020-06-19 17:54:46 +00:00
Griffin Smith
5b833a1375 feat(emacs-packages/tvl): Init with magit gerrit suffix
Add a simple tvl.el, with only one magit transient command to push and
submit in one go to Gerrit

Change-Id: If02065797a8db39669b85acf87a1c4b43d1482ee
Reviewed-on: https://cl.tvl.fyi/c/depot/+/494
Reviewed-by: tazjin <mail@tazj.in>
2020-06-19 03:35:27 +00:00
Vincent Ambo
dbb4a57bbf style(cheddar): Reformat with rustfmt
Change-Id: I9a0764f23c1269447a8b18f3128074fc58f70456
Reviewed-on: https://cl.tvl.fyi/c/depot/+/492
Reviewed-by: glittershark <grfn@gws.fyi>
2020-06-19 02:49:41 +00:00
Vincent Ambo
d1524a5a6f refactor(cheddar): Pass references readers & writers into renderers
This paves the way for using other things than stdin/stdout as
sources/sinks, which is required for example for implementing a
syntect_server replacement based on cheddar.

Change-Id: I5779db8dbf7b7ced109c26b940f721d237d60785
Reviewed-on: https://cl.tvl.fyi/c/depot/+/491
Reviewed-by: glittershark <grfn@gws.fyi>
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-19 02:49:41 +00:00
Vincent Ambo
0b0e8c2da7 chore(tazjin/emacs): Move //tools/emacs to //users/tazjin/emacs
Change-Id: I9dfbd0bb1fd3e215bb91c5734fb0934ee3faeae6
2020-06-18 20:19:50 +01:00
Vincent Ambo
5290c9f59c feat(tools/emacs): Enable go-mode in .go2-files
Change-Id: I03cf0641b22828eb400b9220e0756d9b7aca01cd
2020-06-18 02:42:19 +01:00
Vincent Ambo
c224a738e7 chore(tools/emacs): Remove hardcoded TVL meeting code
Change-Id: I76d24c20dc41969efe242008a2dec4a2a7944c5a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/450
Reviewed-by: tazjin <mail@tazj.in>
2020-06-17 13:50:35 +00:00
Vincent Ambo
5e5e02d6a7 refactor(cheddar): Switch to clap-rs for command line arguments
The complexity of the arg parsing is increasing somewhat because we're
adding more features to cheddar, so to set us up for that this
switches the arg parsing to the somewhat more flexible clap.

Change-Id: I187bc0c1b6c6bd596fa0f6bb494b04e335262ba9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/445
Reviewed-by: lukegb <lukegb@tvl.fyi>
Reviewed-by: tazjin <mail@tazj.in>
2020-06-17 01:18:16 +00:00
Vincent Ambo
51594b0594 chore(cheddar): Bump all dependencies
Manual updates:
  comrak 0.6 -> 0.7
  syntect 3.3 -> 4.2.0

Leading to these automatic updates:
    Updating crates.io index
    Updating adler32 v1.0.4 -> v1.1.0
      Adding autocfg v1.0.0
    Updating base64 v0.10.1 -> v0.12.2
    Removing bindgen v0.53.3
    Removing cexpr v0.4.0
      Adding chrono v0.4.11
    Removing clang-sys v0.29.3
    Updating comrak v0.6.2 -> v0.7.0
    Removing env_logger v0.7.1
    Removing glob v0.3.0
    Updating hermit-abi v0.1.13 -> v0.1.14
    Removing humantime v1.3.0
      Adding indexmap v1.4.0
    Updating itoa v0.4.5 -> v0.4.6
    Updating libc v0.2.70 -> v0.2.71
    Removing libloading v0.5.2
    Removing log v0.4.8
    Updating miniz_oxide v0.3.6 -> v0.3.7
    Removing nom v5.1.1
      Adding num-integer v0.1.43
      Adding num-traits v0.2.12
    Updating onig v5.0.0 -> v6.0.0
    Removing peeking_take_while v0.1.2
    Updating plist v0.4.2 -> v1.0.0
    Updating proc-macro2 v1.0.17 -> v1.0.18
    Removing quick-error v1.2.3
    Updating quote v1.0.6 -> v1.0.7
    Updating regex v1.3.7 -> v1.3.9
    Updating regex-syntax v0.6.17 -> v0.6.18
    Removing rustc-hash v1.1.0
    Updating ryu v1.0.4 -> v1.0.5
    Updating serde v1.0.110 -> v1.0.112
    Updating serde_derive v1.0.110 -> v1.0.112
    Updating serde_json v1.0.53 -> v1.0.55
    Removing shlex v0.1.1
    Updating syn v1.0.25 -> v1.0.31
    Updating syntect v3.3.0 -> v4.2.0
    Removing termcolor v1.1.0
    Removing version_check v0.9.2
    Removing which v3.1.1
    Updating yaml-rust v0.4.3 -> v0.4.4

Change-Id: I2c2ee6a45bf7a5286fe30d61de52d7993871e7e1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/444
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-16 23:59:48 +00:00
Vincent Ambo
9a7a0aa597 chore: Remove traces of Hound
We can always revert this if we want it back.

Change-Id: I1332b6dd541199584b7b5b94a8651172d79e53a9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/442
Reviewed-by: glittershark <grfn@gws.fyi>
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-16 20:32:18 +00:00
Griffin Smith
18994b9c58 fix(tools/gerrit-cli): Don't wrap ssh sniffing in a subshell
This was actually executing ssh, which was kinda silly - we really just
want to check the return code of the `which` invocation

Change-Id: I8a4b277a2be3b0c6a43d2da830cb82a32f9ee51e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/428
Reviewed-by: tazjin <mail@tazj.in>
2020-06-16 15:43:28 +00:00
Griffin Smith
406a66bed1 feat(gerrit-cli): Add gerrit CLI script
Add a script to run gerrit commands on the depot host, which reads the
gerrit username from the TVL_USERNAME env var or $(whoami) by default.

At some point this may want to solve the configuration problem in a more
general fashion, but for now this seems relatively obvious.

Change-Id: Ied91c1d26daf4770aef74b2e755d1760c486bb7b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/396
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: glittershark <grfn@gws.fyi>
2020-06-16 01:54:39 +00:00
Vincent Ambo
29bab159ab feat(depot-build): Add a tool to build at arbitrary tree locations
Assuming you're in `/depot/fun/clbot`, you can do this:

    tazjin@frog /d/f/clbot (master)> depot-build
    Building //fun/clbot
    /nix/store/i1zc6g58wa4819kyhaqi12zsh3hr31ph-clbot

It is automatically added to the $PATH using direnv, too.

Change-Id: Ia3341704e6317c2b8de40a3fa1be3b680d21a42d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/388
Reviewed-by: eta <eta@theta.eu.org>
2020-06-15 19:08:53 +00:00
Vincent Ambo
9885b70b7a feat(cheddar): Override syntax highlighting for 'rules.pl' to Prolog
Adds a mechanism for per-filename overrides of the chosen language
syntax and configures it for Gerrit's submit rule file.

This also switches the syntax set used to the one from
//third_party/bat_syntaxes, which contains custom additions such as
Prolog support.

Change-Id: I2023dbad5b326305ef2ef0ecf34ef66a3f7575ab
Reviewed-on: https://cl.tvl.fyi/c/depot/+/349
Reviewed-by: riking <rikingcoding@gmail.com>
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-06-15 16:52:27 +00:00
Vincent Ambo
d570fbbad3 chore(tools/emacs): Update window management configuration for frog
Change-Id: I848d4c1d58a81a66800f25459fee8f85d3f269f6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/64
Reviewed-by: tazjin <mail@tazj.in>
2020-06-11 23:20:46 +00:00
Vincent Ambo
524b621231 feat(tools/emacs): Configurable depot path, defaulting to /depot 2020-06-11 18:33:02 +01:00
Vincent Ambo
820f591cbb chore(tools/emacs): Remove unused #'notmuch-depot-apply-patch 2020-06-11 18:32:38 +01:00
Vincent Ambo
3407baa756 fix(tools/emacs): Fix path to explain-pause-mode 2020-06-11 12:20:37 +01:00
Vincent Ambo
cc24097029 feat(3p/emacs): Check in derivation for explain-pause-mode
This mode makes it possible to track down slowness in Emacs functions
across the board.

https://github.com/lastquestion/explain-pause-mode

Very useful for some things I need to debug ...
2020-06-03 02:31:31 +01:00
Vincent Ambo
991cf97df2 feat(tools/emacs): Install and configure hound package at cs.tazj.in 2020-05-27 00:06:59 +01:00
Vincent Ambo
74a70896f2 feat(tools/emacs): Add vterm-send-ctrl-x function
This is useful if something accidentally opens nano.
2020-05-26 01:21:42 +01:00
Vincent Ambo
6f8fbf4aa4 chore(tools/cheddar): Bump dependencies & upgrade to LLVM 10 2020-05-25 23:37:39 +01:00
Vincent Ambo
c08886ab82 fix(tools/emacs): Use explicit includes 2020-05-22 19:05:39 +01:00
Vincent Ambo
1086072d3d feat(tools/emacs): Configure eglot to shut down automatically
When all buffers related to a specific eglot instance are gone, eglot
can shut down.
2020-05-19 14:23:59 +01:00
Vincent Ambo
a3894c2bf1 feat(tools/emacs): Install meson-mode 2020-05-17 23:59:00 +01:00
Vincent Ambo
d97cf260a2 refactor(tools/emacs): Move third-party overrides to //third_party
EXWM and vterm are overridden, but this shouldn't be happening outside
of //third_party
2020-05-16 04:08:28 +01:00
Vincent Ambo
a078cabc71 fix(tools/emacs): Configure xkb switching shortcuts on EXWM launch
This enables half of the shortcuts for switching keyboard languages
when EXWM launches.

The cyrillic ones are commented out because Emacs doesn't start
otherwise, I've no idea why and don't care at the moment.
2020-05-16 03:55:31 +01:00
Vincent Ambo
5cc37a15a5 feat(defzone): Add plist argument format for SOA records
These records have so many fields that it's difficult to track what's
what in a long list. For convenience they're now specified in plist
format (see the example).

There isn't really a point to this because the SOA record is the one I
care the *least* about practically as Cloud DNS sets it for me, but
whatever.
2020-04-20 22:39:58 +01:00
Vincent Ambo
8c86b9b5f6 feat(defzone): Add an Emacs package for generating zone files
This currently only supports a small subset of available records, but
I actually kind of like the nesting.
2020-04-20 22:39:58 +01:00
Vincent Ambo
590e1e1048 feat(tools/emacs): Add screen layouts for nugget to EXWM config 2020-04-18 15:27:56 +01:00
Vincent Ambo
820b1bb0c9 feat(tools/emacs): Refactor monitor layout setup in EXWM
vauxhall (my laptop) now has an additional screen connected at home,
but sometimes I use that screen for my desktop computer (nugget).

This refactors the randr configuration for EXWM to support somewhat
more dynamic, multi-monitor layouts and adds key bindings to toggle
between some of the different configurations I want.
2020-04-17 13:13:59 +01:00
Vincent Ambo
afc729c419 feat(tools/emacs): Install polymode & protobuf-mode
... how did I not have protobuf-mode installed? What?
2020-04-06 23:19:52 +01:00
Vincent Ambo
e3864f3b85 feat(tools/emacs): Title the TVL window correctly 2020-04-04 22:27:06 +01:00
Vincent Ambo
e9aa5ae463 fix(tools/emacs): Include date in scrot screenshot names 2020-04-04 20:05:32 +01:00
Vincent Ambo
f99fc009fc fix(tools/emacs): Fix notmuch-show-open-or-close-subthread
Accidentally dropped a key parameter, also restored interactive
functionality via prefix arguments..
2020-04-02 21:59:18 +01:00
Vincent Ambo
40d13cc87f feat(tools/emacs): Bindings for (un)collapsing notmuch subthreads
Modifies notmuch-show-open-or-close-subthread to take a parameter
instead of using prefix to toggle the argument, and binds that
function to C-, and C-. in notmuch-show-mode-map to enable convenient
collapsing/uncollapsing of subthreads from point.
2020-04-02 01:35:16 +01:00
Vincent Ambo
5aaeaa406a feat(tools/emacs): Implement 'notmuch-show-open-or-close-subthread'
Does what it says on the tin.
2020-04-01 22:28:23 +01:00
Vincent Ambo
049a13562c feat(tools/emacs): Install eglot & dependencies 2020-03-29 22:31:32 +01:00
Vincent Ambo
8df1371b9d chore(tools/emacs): Remove unimportant 'important' label from graph 2020-03-11 05:55:22 +00:00
Vincent Ambo
049709a7f3 fix(tools/emacs): Set correct file name format for org-journal 2020-03-09 01:07:32 +00:00
Vincent Ambo
9372f57659 feat(tools/emacs): Configure org-journal
Configures org-journal to store journal files on camden and encrypt
them to my GPG key.

Journal entries are weekly, with weeks starting Saturday (yes, there's
a reason for this).
2020-03-09 01:00:11 +00:00
Vincent Ambo
15ae7fadb8 fix(tools/emacs): Set scratch buffer to Emacs Lisp mode
This used to be the case, but it changed to lisp-interaction-mode at
some point which is incredibly annoying.
2020-03-09 00:16:18 +00:00
Vincent Ambo
067acdbcae chore(tools/emacs): Configure all-tags list in notmuch-hello
I've been setting these options manually in my sessions for some
reason. Let's make it official!
2020-03-09 00:08:33 +00:00
Vincent Ambo
28ec16e618 feat(tools/emacs): Add a function to graph unread emails per label
This uses the built-in chart.el library to create a quick graph of the
number of unread emails in each notmuch tag. Some generic tags are
excluded from the overview.
2020-03-08 23:58:01 +00:00
Vincent Ambo
65e533431a refactor: emacsPackagesNg -> emacsPackages
The former is now just an alias for the latter anyways.
2020-03-08 23:20:03 +00:00
Vincent Ambo
6cbcadc2e4 feat(tools/emacs): Install org-journal & org-ql 2020-03-08 23:16:44 +00:00
Vincent Ambo
4c0e565fe1 feat(tools/emacs): Install cmake-mode 2020-02-26 15:20:41 +00:00