about summary refs log tree commit diff
path: root/configs/shared/.emacs.d/wpc/google-stuff.el
diff options
context:
space:
mode:
Diffstat (limited to 'configs/shared/.emacs.d/wpc/google-stuff.el')
-rw-r--r--configs/shared/.emacs.d/wpc/google-stuff.el215
1 files changed, 0 insertions, 215 deletions
diff --git a/configs/shared/.emacs.d/wpc/google-stuff.el b/configs/shared/.emacs.d/wpc/google-stuff.el
deleted file mode 100644
index 96c8056596..0000000000
--- a/configs/shared/.emacs.d/wpc/google-stuff.el
+++ /dev/null
@@ -1,215 +0,0 @@
-;;; google-stuff.el --- Working with Google infrastructure from Emacs -*- 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 typical programmer's workflow suffer from what economists call
-;; "inelastic demand".  This means that any increase in the price of something
-;; plummets the demand.  Another way of saying 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 mentally taxing, so any
-;; additional taxation can sometimes feel unbearable.  Until programming changes
-;; dramatically and we relieve our dependence on files and text for modeling
-;; complex applications, this price sensitivity will most likely remain the
-;; status quo.  Therefore, it's critical to reduce the price of experimenting
-;; with new tools such that new, superior workflows may emerge.  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 'f)
-(require 'ivy-helpers)
-(require 'maybe)
-(require 'device)
-(require 'macros)
-(require 'general)
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Library
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-;; TODO: Ensure a consistent and deliberate usage of `defvar', `defconst', and
-;; `defcustom' across all Elisp modules.
-(defcustom google-stuff/install-kbds? t
-  "When t, install the keybindings defined herein.")
-
-;; Definitions as explained by the highly knowledgeable Matthew (i.e. mjo@)
-(defconst google-stuff/definitions
-  '(
-    ;; command-line tools
-    ("gcert"  . "Requests a CorpSSH certificate.")
-    ("glogin" . "SSO (i.e. Single Sign-On) cookie.")
-    ("googlenetworkaccess" . "Device certificate that gives users a certificate
-to access to the Google corp network.")
-    ("prodaccess" . "Sets up a LOAS session on Goobuntu.")
-    ;; general wtfs
-    ("LOAS" . "Distributed authentication service used by jobs in production and
-corp to authenticate each other. It's more efficient than SSL and works with
-Stubby.")
-    ))
-
-(defconst google-stuff/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: Straighten out fig, citc, google3 and have modules for each.
-
-;; TODO: Move this to a google3.el module.
-(defconst google-stuff/root
-  "/google/src/cloud/wpcarro"
-  "The root directory to access google3.")
-
-;; TODO: Find a fast way to generate this.
-(defconst google-stuff/citc-clients
-  '("auto-consult"
-    "ac-skeleton")
-  "A list of my active CitC clients.")
-
-
-;; TODO: Can this be sourced from ~/.g4d?
-(defconst google-stuff/citc-aliases
-  '(("google3" . "/google3")
-    ("escalations" . "/google3/corp/gtech/pto/tda/beacons_extension")
-    ("spewall_fe" . "/google3/alkali/apps/speakeasydashboard")
-    ("spewall_be" . "/google3/java/com/google/alkali/applications/speakeasydashboard")
-    ("spewall_protos" . "/google3/google/internal/alkali/applications/speakeasydashboard")
-    ("spewall_tests" . "/google3/javatests/com/google/alkali/applications/speakeasydashboard")
-    ("gti" . "/google3/experimental/engedu/gti/projects/week20190422/mtv/Team10")
-    ("authwf" . "/google3/customer_support/automation/workflow")
-    ("redwood" . "/google3/customer_support/kms/redwood/ui")
-    ("wf-fe" . "/google3/customer_support/kms/redwood/ui/client/components/item/workflow_editor")
-    ("ac (alkali)" . "/google3/google/internal/alkali/applications/casesconsultservice")
-    ("ac-server" . "/google3/java/com/google/alkali/applications/casesconsultservice/server/")
-    ("ac-server (tests)" . "/google3/javatests/com/google/alkali/applications/casesconsultservice/server/"))
-  "Mapping of a label to commonly visited locations in Google3.")
-
-
-(defvar google-stuff/active-citc-client nil
-  "Currently active CitC client.")
-
-(defun google-stuff/depot-prefix ()
-  "Return the current prefix for //depot/google3."
-  (string/format "/google/src/cloud/wpcarro/%s/google3/"
-                 google-stuff/active-citc-client))
-
-(defun google-stuff/cs-url ()
-  "Return the code-search URL for the current buffer and line number."
-  (string/format "cs.corp.google.com/piper///depot/google3/%s?l=%s"
-                 (s-chop-prefix
-                  (google-stuff/depot-prefix)
-                  (buffer-file-name))
-                 (line-number-at-pos)))
-
-(defun google-stuff/copy-cs-url ()
-  "Copy the current file and line-position to the system clipboard."
-  (interactive)
-  (clipboard/copy (google-stuff/cs-url)))
-
-(defun google-stuff/open-buffer-in-cs ()
-  "Open the current file in Google's CodeSearch."
-  (interactive)
-  (shell-command
-   (string/format "google-chrome '%s'"
-                  (google-stuff/cs-url)
-                  (line-number-at-pos))))
-
-;; TODO: As a naming convention, should I prefer ivy or select? Or counsel?
-(defun google-stuff/select-citc-client ()
-  "Set `google-stuff/active-citc-client' with counsel."
-  (interactive)
-  (setq google-stuff/active-citc-client
-        (ivy-read "CitC Client: " google-stuff/citc-clients)))
-
-(defun google-stuff/remote-buffer? ()
-  "Return t if buffer is one accessed via Tramp."
-  (with-current-buffer (current-buffer)
-    (if (file-remote-p default-directory)
-        t
-      nil)))
-
-(defun google-stuff/jump-to-citc-alias ()
-  "Use `find-file' to open an alias registered in `google-stuff/citc-aliases'.
-When on a corporate laptop, remote connections are made using Tramp."
-  (interactive)
-  (when (maybe/nil? google-stuff/active-citc-client)
-    (call-interactively #'google-stuff/select-citc-client))
-  (ivy-helpers/kv
-   "Jump to CitC Alias: "
-   google-stuff/citc-aliases
-   (lambda (k v)
-     (->> v
-          ;; If I don't remove the leading slash, `f-join' won't return a valid
-          ;; path.
-          (s-chop-prefix "/")
-          (f-join google-stuff/root
-                  google-stuff/active-citc-client)
-          (s-prepend (if (device/work-laptop?) "/ssh:wpcarro@desktop:" ""))
-          find-file))))
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Stuff I learned reading go/emacs
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-;; Fig
-;; TODO: Make sure there are Evil-compatible KBDs for `fig-status'.
-;; (require 'google-fig)
-
-;; This allows `find-file' handle "//depot/google3/devtools/editors/".
-(require 'p4-files)
-(p4-enable-file-name-handler)
-
-;; Blaze Support
-;; - `google3-compile-current-file' is an excellent command!
-
-;; google3-eglot (uses CiderLSP)
-;; TODO: Make sure the functionality is supported as advertised:
-;; - auto-completion
-;; - eglot-help-at-point for documentation.
-;; - goto-definition
-;; - `eglot-code-actions' fixits
-;; - `eglot-rename' refactoring
-(require 'google3-eglot)
-(google3-eglot-setup)
-
-;; CodeSearch
-;; TODO: Debug why this depends on google-piper and why I don't have that on my
-;; desktop.
-;; (require 'ivy-cs)
-
-;; Auto completion
-;; TODO: Is the part of or separate from google3-eglot?  Because google3-eglot
-;; advertises auto-completion support.
-(require 'google3-build-capf)
-(google3-build-capf-enable-completions)
-(add-to-list 'company-backends #'company-capf)
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Keybindings
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(when google-stuff/install-kbds?
-  (general-define-key
-   :prefix "<SPC>"
-   :states '(normal)
-   "Gs" #'fig-status
-   "Cs" #'google-stuff/open-buffer-in-cs
-   "jc" #'google-stuff/jump-to-citc-alias))
-
-(provide 'google-stuff)
-;;; google-stuff.el ends here