about summary refs log tree commit diff
path: root/configs/shared/.emacs.d/wpc/google-tooling.el
diff options
context:
space:
mode:
Diffstat (limited to 'configs/shared/.emacs.d/wpc/google-tooling.el')
-rw-r--r--configs/shared/.emacs.d/wpc/google-tooling.el53
1 files changed, 53 insertions, 0 deletions
diff --git a/configs/shared/.emacs.d/wpc/google-tooling.el b/configs/shared/.emacs.d/wpc/google-tooling.el
new file mode 100644
index 000000000000..661df41d6c63
--- /dev/null
+++ b/configs/shared/.emacs.d/wpc/google-tooling.el
@@ -0,0 +1,53 @@
+;;; google-tooling.el --- Better access to Google tooling -*- lexical-binding: t -*-
+;; Author: William Carroll <wpcarro@gmail.com>
+
+;;; Commentary:
+
+;; First, I must opine.  Feel free to skip this section.  In general, it seems
+;; that the average programmer's workflow suffer from what economists call
+;; "inelastic demand".  This means that any increase in price for something
+;; sends the demand plummeting.  Another way of phrasing this is that
+;; programmers are "price sensitive" when it comes to adopting new workflows.
+;;
+;; For us, any deviation from our "established" workflow feels costly.  This
+;; makes sense to me because programming is already taxing, so any additional
+;; taxation can feel unbearable.  Until programming changes dramatically, and we
+;; relieve our dependence on files and text for modeling complex applications,
+;; this inelastic demand will remain the status quo.  Therefore, it's critical
+;; to reduce the price of experimenting with new tools such that new, superior
+;; habits may form.  In this vain, this module attempts to surface "luxury
+;; tools" (i.e. dependency pruners, code linters, code formatters) via Emacs to
+;; reduce the price of experimenting with them.
+
+;;; Code:
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Dependencies
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(require 'macros)
+
+;; TODO: Figure out whether or not to integrate with google-emacs.
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Library
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defconst google-tooling/tools
+  '(("Depana" . "depana")
+    ("Build cleaner" . "build_cleaner")
+    ("Java formatter" . "google-java-format")
+    ("Proto formatter" . "clang-format"))
+  "Mapping of names of tools to the names of the executables that run them.")
+
+(use-package protobuf-mode
+  :config
+  (macros/support-file-extension "pb" protobuf-mode))
+
+;; TODO: Call blaze build, use Counsel to select an action, run that action on
+;; the nearest BUILD file.
+
+;; TODO: Call build-cleaner on the nearest BUILD file.
+
+(provide 'google-tooling)
+;;; google-tooling.el ends here