Commit graph

1600 commits

Author SHA1 Message Date
Vincent Ambo
2bf2567284 feat(emacs-pkgs): Check in separate dottime package
This package adds a toggle for displaying modeline time in dottime, as
well as a function for formatting time as dottime generically.
2019-12-15 22:54:58 +00:00
Vincent Ambo
02e2877193 chore(emacs): Move carp-mode to third-party 2019-12-15 20:55:46 +00:00
Vincent Ambo
00c9060c2f feat(emacs.d): Introduce custom mc/mark-dwim cursor marker
Adds a "do what I mean" multiple-cursor selection with the logic that
I find most useful:

* If there is no active region, mark the next line (or lines, based on
  prefix argument)
* If there is an active region that spans multiple lines, call
  `mc/edit-lines`
* If there is an active region on a single line, trigger a custom
  selection hydra with functionality equivalent to
  `mc/mark-more-like-this-extended` but a slightly improved user
  experience

Hopefully this will make it easier to get into the habit of actually
using multiple-cursors without calling the mc commands via M-x
2019-12-15 17:13:17 +00:00
Vincent Ambo
895deabb3a chore(emacs.d): Comment out not-currently-used email bindings 2019-12-15 17:09:39 +00:00
Vincent Ambo
431610e420 chore(overrides): Bump buildGo.nix
The new version correctly builds external binaries at package roots.
2019-12-15 15:58:15 +00:00
Vincent Ambo
53630e3b15 fix(external): Correctly determine binary name if locator is empty
If the root of a project is a binary, the previous logic would
generate invalid names.

This ensure that the last path component of the name is used.
2019-12-15 15:57:10 +00:00
Vincent Ambo
c16d9bb9b8 chore(tools): Add 'rink' 2019-12-14 17:53:33 +00:00
Vincent Ambo
cbe7b47a96 refactor(tools): __dispatch.sh now uses relative paths
This enables usage of __dispatch.sh from anywhere, even outside of the
depot.

Specifically this means I can add `~/depot/bin` to my $PATH and all
the registered tools work from anywhere.
2019-12-14 17:40:21 +00:00
Vincent Ambo
f69dfbc40e fix(emacs.d): Fix loading of custom.el 2019-12-14 17:15:47 +00:00
Vincent Ambo
c8bf0f9008 feat(emacs.d): Add function to open depot in magit 2019-12-14 17:07:25 +00:00
Vincent Ambo
fea2191d15 chore(build): Build tools.emacs in CI 2019-12-14 16:00:04 +00:00
Vincent Ambo
7315ca331e chore(emacs.d): Clean up <tab> bindings
One simple rule to rule them all: In prog-mode, <tab> tries to invoke
company.
2019-12-14 15:59:20 +00:00
Vincent Ambo
9df9fafd82 fix(emacs.d): Let emacs write to customize configuration
Configures Emacs' `customize` to write directly to my Emacs
configuration. This comes with the caveat that the new config will
only be loaded if my Emacs is rebuilt.
2019-12-14 15:38:03 +00:00
Vincent Ambo
fadf0619eb feat(tools/emacs): Build fully pre-configured Emacs
Builds an Emacs that is not only configured with the required packages
but with the entire Emacs configuration for my personal setup.

This means that `nix-env -iA tools.emacs` will install a
fully-configured Emacs that can be launched as the window manager from
my ~/.xsession.
2019-12-14 15:25:04 +00:00
Vincent Ambo
7d03ab7140 chore(emacs.d): Move init/* to config/* 2019-12-14 15:24:53 +00:00
Vincent Ambo
1584607fb9 chore: Remove some configuration from a previous life 2019-12-14 14:56:13 +00:00
Vincent Ambo
bd7903815d feat(emacs.d): Load local Emacs configuration if present
This allows me to have local Emacs configuration that is tracked
separately from the rest.
2019-12-14 13:35:03 +00:00
Vincent Ambo
c490bbf4b3 chore(emacs.d): Import several months of privately tracked changes
These changes were made in a fork of my configuration that is not
publicly available and detailed history will not be included in this
public commit.
2019-12-14 13:23:20 +00:00
Vincent Ambo
1f204f2891 feat(emacs.d): Display modeline time in dottime
See dotti.me for more information about dottime.

<3 edef
2019-12-14 13:22:28 +00:00
Vincent Ambo
c1ba41a62d feat(emacs.d): Generalise counsel terminal selector
This makes it possible to use my terminal selector with any X11
terminal, configurable via two simple variables.
2019-12-14 13:21:12 +00:00
Vincent Ambo
bd7c9e4b5a fix(writeElispBin): Use emacsPackagesNg
Ng is used by my Emacs derivation. I don't actually know what they do
differently, but it seems sensible to use the same one in both places.
2019-12-14 12:49:18 +00:00
Vincent Ambo
2b80265a1f refactor(emacs): Rewrite derivation to match depot layout 2019-12-14 12:47:07 +00:00
Vincent Ambo
863f5b146d chore(emacs): Move Nix derivation for building Emacs over from infra 2019-12-14 11:57:11 +00:00
Vincent Ambo
b4f835e21c chore(infra/nixos): Remove deprecated local packages 2019-12-14 11:56:48 +00:00
Vincent Ambo
0a8aa95c73 chore(infra/nixos): Mark folder as "not to be evaluated" 2019-12-14 11:55:31 +00:00
Vincent Ambo
85be796407 fix(build): Import package set correctly for CI builds 2019-12-14 11:52:27 +00:00
Vincent Ambo
74b5054a43 merge(nixos): Merge (unrelated) NixOS config history into infra/ 2019-12-14 11:45:21 +00:00
Vincent Ambo
3f199f9650 chore(nixos): Move NixOS config to infra/nixos 2019-12-14 11:44:01 +00:00
Vincent Ambo
3071ffdc8a chore(third_party): Add derivation for gopkgs/golang/groupcache 2019-12-14 11:37:48 +00:00
Vincent Ambo
a80ebfb067 docs(emacs): Update README file 2019-12-14 11:32:54 +00:00
Vincent Ambo
b938d716ff merge(emacs): Merge (unrelated) emacs.d history into tools/emacs 2019-12-14 11:31:25 +00:00
Vincent Ambo
15c61c0bee chore(emacs): Move emacs config to tools/emacs 2019-12-14 11:30:56 +00:00
Vincent Ambo
00129e06b2 fix(build): Make repository callable in Nix
This is required for some things that expect package sets to be
callable, e.g. Nixery.
2019-12-13 21:32:35 +00:00
Vincent Ambo
dc6e0e86ad chore(third_party): Bump nixpkgs channel
This channel is nixos-unstable on 2019-12-13.
2019-12-13 21:32:02 +00:00
Vincent Ambo
97e25e4dab chore(overrides): Bump buildGo.nix to add ASM support
This is required to build `x/sys`, which is required by the blog_cli
2019-12-13 21:31:37 +00:00
Vincent Ambo
fe01b82c5d refactor(tools/blog_cli): Build with buildGo.nix
This is the first Go package properly built with external dependencies
using buildGo.nix
2019-12-13 21:31:01 +00:00
Vincent Ambo
6220294f94 chore(third_party): Bump gopkgs needed for Google Cloud 2019-12-13 21:30:14 +00:00
Vincent Ambo
7f74980457 feat(external): Compile Go assembly and include it in pkg archive
This was the final step required to add support for packages that make
use of Go assembly, such as golang.org/x/sys.
2019-12-13 21:23:41 +00:00
Vincent Ambo
859c429b2f feat(external): Include *.s (ASM) files in external builds 2019-12-13 15:15:53 +00:00
Vincent Ambo
cfae527cc1 feat(buildGo): Support linking of symabi files for ASM sources 2019-12-13 15:15:22 +00:00
Vincent Ambo
9594203e07 feat(third_party/gopkgs): Import external packages for Google Cloud
These packages contain the Cloud SDK for Go. There is currently a
linker issue (presumably due to something in `buildGo.nix`) that means
that projects using them can not actually be built.
2019-12-13 12:12:06 +00:00
Vincent Ambo
8b10c8d0f3 chore(overrides): Upgrade buildGo.nix 2019-12-13 12:11:50 +00:00
Vincent Ambo
5649c75d01 fix(external): Fix "inverted" local dependencies
Usually in large packages the root depends on one or more
sub-packages (or there is no root), but some projects (e.g.
golang.org/x/oauth2) do it the other way around.

This fix adds compatibility for both ways.
2019-12-13 12:10:32 +00:00
Vincent Ambo
9d5417501b docs(README): Update description of buildGo.external 2019-12-13 00:39:53 +00:00
Vincent Ambo
369c86e0ef fix(proto): Refactor gRPC dependencies to match new external layout
This is now a lot more fine-grained than before, but it actually works
fine.

This stuff is a bit annoying to write by hand. There are multiple
different options available (e.g. carrying an attribute set of all
subpackages in each `external` and only passing that, having a tool
generate this, etc.).
2019-12-13 00:39:53 +00:00
Vincent Ambo
41c28cf60e fix(buildGo): Correctly refer to goGrpc package 2019-12-13 00:39:53 +00:00
Vincent Ambo
d8ef203f78 feat(external): Support foreign dependencies in external packages
Users can supply a list of foreign dependencies in calls to
buildGo.external. These are now appropriately inserted into packages
that *need them* and no further, resolving issues with complex
internal recursion in some repositories!
2019-12-13 00:39:53 +00:00
Vincent Ambo
218b81c709 fix(external): Skip folders with "no buildable Go files"
This error is returned by the build analysis logic if the target
package does not have any relevant Go files, which might be the case
if `+build` flags and such are used.
2019-12-13 00:39:53 +00:00
Vincent Ambo
39e73f42b2 style(external): Minor formatting fixes 2019-12-13 00:39:53 +00:00
Vincent Ambo
0dfa5d15fa fix(buildGo): Update buildGo.proto for compatibility with external
Changes in the structure of buildGo.external meant that the package
layout for the protobuf library is now slightly different.

`proto` has been amended to work with the new structure. Callers of
buildGo.proto do not need to be updated (i.e. the example still
works).
2019-12-13 00:39:53 +00:00