2016-08-26 16:37:27 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# -*- mode: org; -*-  
						 
					
						
							
								
									
										
										
										
											2016-12-28 18:38:06 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								[[https://travis-ci.org/IvanMalison/dotfiles ][file:https://travis-ci.org/IvanMalison/dotfiles.svg?branch=master ]]
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 17:18:18 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-11-29 23:02:28 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								This document is best read at [[http://ivanmalison.github.io/dotfiles/ ]] or, of
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								course, in emacs, as the internal links that follow are unlikely to work
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								anywhere else (including, for example, at
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								https://github.com/IvanMalison/dotfiles).
							 
						 
					
						
							
								
									
										
										
										
											2016-06-20 01:28:14 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  About  
						 
					
						
							
								
									
										
										
										
											2016-10-24 21:17:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								This is my emacs configuration in literate form. It aspires to be
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								like the incredibly well commented literate configurations of [[http://pages.sachachua.com/.emacs.d/Sacha.html ][Sacha Chua ]] and
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[[http://doc.rix.si/cce/cce.html ][Ryan Rix ]], but I haven't quite gotten around to polishing it to the point that
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								those two have. Still, there are definitely a few sections of which I am quite
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								proud, and that others may find to be useful.
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 13:17:03 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  Highlights  
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:04:28 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								These sections are the ones that have the most potential to be interesting to
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								others:
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 13:21:28 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  How I generate http://ivanmalison.github.io/dotfiles/ 
						 
					
						
							
								
									
										
										
										
											2016-12-28 17:13:44 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  org-export 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								****  travis-ci 
						 
					
						
							
								
									
										
										
										
											2017-08-03 10:08:33 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								[[https://github.com/IvanMalison/dotfiles/tree/master/gen-gh-pages ][This directory ]] contains a collection of scripts that export this org document
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								to html. This approach is taken (with only a few modifications) from [[https://gist.github.com/domenic/ec8b0fc8ab45f39403dd ][here ]].
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 17:13:44 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  githook (The old way) 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								NOTE: I've left this here in case other people have an interest in this method,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								but I no longer use it.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								I wrote a [[https://github.com/IvanMalison/dotfiles/tree/9e56ced1dd70e50e1026aca5af51437e93add026/dotfiles/emacs.d/bin ][githook and an installer script ]] that automatically update index.html
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 12:09:12 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								at the root of the repository by running ~org-html-export-to-html~  on my
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								README.org (essentially this document) . These should work no matter where they
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								are placed in a repository. The org-mode file that they target is set [[https://github.com/IvanMalison/dotfiles/blob/16a4f6c3aadef39a45d30c15e8637b40858721ea/dotfiles/emacs.d/bin/util.sh#L4 ][here ]] and
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								should be relatively easy to change.
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 13:21:28 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  [[https://github.com/fniessen/org-html-themes][Read The Org]] 
						 
					
						
							
								
									
										
										
										
											2017-07-29 00:32:45 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								I use [[https://github.com/fniessen ][fniessen ]]'s ReadTheOrg theme which can be found at
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								https://github.com/fniessen/org-html-themes.
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 18:17:57 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  Predictable and Human Readable Heading Links 
						 
					
						
							
								
									
										
										
										
											2016-10-25 12:09:12 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								To make it so that internal heading links have names that correspond to the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								heading text, and don't change when new headings are added to the document, I
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								wrote a custom version of ~org-export-get-reference~ .
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								See how [[Use my own default naming scheme for org-headings ][this link ]] (which is just a normal internal link in the original
							 
						 
					
						
							
								
									
										
										
										
											2016-11-18 16:20:32 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								document) takes you to
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								http://ivanmalison.github.io/dotfiles/ #usemyowndefaultnamingschemefororgheadings.
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 12:09:12 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								In case you haven't noticed, that is where you should go grab the code that does
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								this.
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 13:17:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 13:17:33 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								I'm considering turning this snippet in to a package, so please let me know if
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								that is something you are interested in.
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 18:27:49 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  [[Add link icons in headings that lead to themselves][Add link icons in headings that lead to themselves]] 
						 
					
						
							
								
									
										
										
										
											2017-07-29 00:32:45 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								This is another pretty nasty hack. This is useful when you are browsing the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								document and you want to grab a link to the current heading.
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 13:21:28 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  Set Background Color Source Blocks 
						 
					
						
							
								
									
										
										
										
											2017-07-29 00:32:45 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								For some reason, org-mode uses all of your currently active fontification when
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exporting EXCEPT for background color. [[Set Background Color of Source Blocks for Export ][This ]] modification fixes this.
							 
						 
					
						
							
								
									
										
										
										
											2017-04-18 14:22:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  [[frame-mode][Custom frame control]] 
						 
					
						
							
								
									
										
										
										
											2017-08-03 10:08:33 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								My custom [[frame-mode ][frame-mode ]] stuff is built to integrate really nicely with xmonad. I
							 
						 
					
						
							
								
									
										
										
										
											2016-11-21 17:49:27 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								think its pretty awesome!
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 13:21:28 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  [[Functions][My functions section]] 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:16:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								...has a bunch of generally useful functions:
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 13:17:33 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								+  [[https://github.com/IvanMalison/emit/blob/2e4d788abd68bac538acb06443179b8d5885052e/emit.el#L104 ][emit-prefix-selector ]] (SUPER USEFUL, moved to emit) See [[https://github.com/IvanMalison/emit#prefix-selector ][README ]] for explantion 
						 
					
						
							
								
									
										
										
										
											2016-10-25 12:59:03 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								+  [[Font Size ][Font Size ]] functions and an [[fontsizehydra ][Awesome Hydra ]] for them 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:16:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								+  [[downloadfile ][Download a file into a buffer ]] (curl straight into a file) 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								+  [[editscript ][Edit a script on $PATH ]] 
						 
					
						
							
								
									
										
										
										
											2017-07-29 00:32:45 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								+  [[Copy/Yanking ][Copy Portions of Buffer File Path Hydra ]] and the associated 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 [[Copy/Yank String Functions ][Copy String Functions ]]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								+  [[namedbuild ][Named Build of Builder Macros ]] ([[https://github.com/IvanMalison/emit#named-builder ][README ]]) and [[composemacros ][A Compose Supporting Macros ]] 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ([[https://github.com/IvanMalison/emit#compose ][README ]])
							 
						 
					
						
							
								
									
										
										
										
											2018-07-14 12:53:02 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								+  [[Add a blacklist to a major mode ]] 
						 
					
						
							
								
									
										
										
										
											2016-10-25 13:21:28 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Configuration of My Own Packages 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:04:28 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  [[term-projectile ][term-projectile ]] and [[term-manager ][term-manager ]] 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  [[org-projectile ][org-projectile ]] 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  [[multi-line ][multi-line ]] 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  [[github-search ][github-search ]] 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  [[flimenu ][flimenu ]] 
						 
					
						
							
								
									
										
										
										
											2018-01-17 09:13:30 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  [[frame-mode ][frame-mode ]] 
						 
					
						
							
								
									
										
										
										
											2016-11-02 20:56:01 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  [[tile ][tile ]] 
						 
					
						
							
								
									
										
										
										
											2016-10-25 13:21:28 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  [[programminglanguages][Programming Language Configurations]] 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:04:28 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								My programming language major mode configurations can all be found [[programminglanguages ][here ]].
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 13:21:28 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  [[org][org-mode]] 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:18:33 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								My [[org ][org-mode ]] configuration is pretty comprehensive, but not super well commented.
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:04:28 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  HTML Headers  
						 
					
						
							
								
									
										
										
										
											2016-10-19 11:49:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+HTML_HEAD : <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+HTML_HEAD : <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+HTML_HEAD : <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+HTML_HEAD : <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+HTML_HEAD : <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+HTML_HEAD : <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>  
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  Early  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The configurations in this section need to occur early in emacs startup for some reason or another.
							 
						 
					
						
							
								
									
										
										
										
											2016-06-09 12:52:26 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Lexical Binding 
						 
					
						
							
								
									
										
										
										
											2016-08-10 19:49:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								This makes it so that the file that is produced from tangling this
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								file uses lexical scoping.
							 
						 
					
						
							
								
									
										
										
										
											2016-06-09 12:52:26 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;;; -*- lexical-binding: t -* -
							 
						 
					
						
							
								
									
										
										
										
											2016-09-07 14:09:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(setq-default lexical-binding t)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-09 12:52:26 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-11-07 11:57:02 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Security 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defvar imalison:secure t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:use-https-and-tls ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (setq tls-checktrust t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let ((trustfile
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         (replace-regexp-in-string
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          "\\\\" "/"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (replace-regexp-in-string
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           "\n" ""
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           (shell-command-to-string "python -m certifi")))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq tls-program
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (list
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           (format "gnutls-cli%s --x509cafile %s -p %%p %%h"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                   (if (eq window-system 'w32) ".exe" "") trustfile)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:test-security ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let ((bad-hosts
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         (loop for bad
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               in `("https://wrong.host.badssl.com/ "
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    "https://self-signed.badssl.com/ ")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               if (condition-case _e
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      (url-retrieve
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       bad (lambda (_retrieved) t))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    (error nil))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               collect bad)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (if bad-hosts
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (error (format "tls misconfigured; retrieved %s ok"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       bad-hosts))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (url-retrieve "https://badssl.com"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    (lambda (_retrieved) t)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(when imalison:secure (imalison:use-https-and-tls))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-06-27 13:22:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Setup auto-compile 
						 
					
						
							
								
									
										
										
										
											2016-06-21 22:35:37 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-11-07 11:57:02 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package auto-compile
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
									
										
										
										
											2017-12-14 13:57:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :straight t
							 
						 
					
						
							
								
									
										
										
										
											2016-11-07 11:57:02 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (auto-compile-on-load-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (auto-compile-on-save-mode)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-21 22:35:37 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  Prefer Newer Versions 
						 
					
						
							
								
									
										
										
										
											2016-08-10 19:49:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								To reduce the risk of loading outdated byte code files, we set
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								load-prefer-newer and enable auto-compile-on-load-mode as early as
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								possible.
							 
						 
					
						
							
								
									
										
										
										
											2016-06-21 22:35:37 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(setq load-prefer-newer t)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-21 22:35:37 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 12:16:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Custom Files 
						 
					
						
							
								
									
										
										
										
											2016-09-13 17:49:48 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The default value of ~custom-file~  is just the current user's ~.emacs.d/init.el~ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								file. Emacs will add content to ~custom-file~  whenever a variable is customized
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								or marked as safe. When init.el is version controlled, it is quite annoying to
							 
						 
					
						
							
								
									
										
										
										
											2016-11-30 16:31:02 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								have random machine-generated variable settings added to it because those
							 
						 
					
						
							
								
									
										
										
										
											2016-09-13 17:49:48 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								changes are often not worth keeping permanently, so we set a different custom
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								file here to avoid this situation.
							 
						 
					
						
							
								
									
										
										
										
											2014-12-03 14:38:14 -08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-09-13 17:49:48 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								custom-before.el is loaded before the  rest of init.el, while custom-after.el is
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								loaded afterwards. this-machine.el has customizations  that should only apply to
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								the current machine.  custom-before and custom-after are  not version controlled
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								in the dotfiles repo but they are shared across machines elsewhere.
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 12:16:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar machine-custom "~/.emacs.d/this-machine.el")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defvar custom-after-file "~/.emacs.d/custom-after.el")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq custom-file "~/.emacs.d/custom-before.el")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(when (file-exists-p custom-file) (load custom-file))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 12:16:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-06-17 11:28:54 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Benchmarking 
						 
					
						
							
								
									
										
										
										
											2016-08-10 19:49:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								This appears here so that it can accurately benchmark as much of
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								startup as possible.
							 
						 
					
						
							
								
									
										
										
										
											2016-06-17 11:28:54 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-11-07 11:57:02 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar imalison:do-benchmark)
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 15:50:45 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(let ((bench-file (concat (file-name-directory user-init-file) "benchmark.el")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (when (file-exists-p bench-file) (load bench-file)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-11-07 11:57:02 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package benchmark-init
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 15:50:45 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :if imalison:do-benchmark
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (setq max-specpdl-size 99999999))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-17 11:28:54 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 16:47:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  GUI Disables 
						 
					
						
							
								
									
										
										
										
											2016-08-10 19:49:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Death to any gui elements in emacs! Do this EARLY so that emacs
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								doesn't redisplay in a way that is visually unpleasant on startup a
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								bunch of times.
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 16:47:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(when (fboundp 'menu-bar-mode) (menu-bar-mode -1))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(when (fboundp 'tool-bar-mode) (tool-bar-mode -1))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(when (fboundp 'scroll-bar-mode) (scroll-bar-mode -1))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 16:47:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-06-15 21:01:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Tooltips are annoying:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(if (fboundp 'tooltip-mode) (tooltip-mode -1) (setq tooltip-use-echo-area t))'
							 
						 
					
						
							
								
									
										
										
										
											2016-06-15 21:01:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-06-09 13:27:39 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Byte-Compiler 
						 
					
						
							
								
									
										
										
										
											2016-08-10 19:49:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								These definitions silence the byte-compiler.
							 
						 
					
						
							
								
									
										
										
										
											2016-06-09 13:27:39 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 21:53:40 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar grep-find-ignored-directories nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defvar grep-find-ignored-files nil)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar ido-context-switch-command nil)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 21:53:40 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar ido-cur-item nil)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar ido-cur-list nil)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 21:53:40 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar ido-default-item nil)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar inherit-input-method nil)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 21:53:40 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar oauth--token-data nil)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar tls-checktrust nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defvar tls-program nil)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 21:53:40 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar url-callback-arguments nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defvar url-callback-function nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defvar url-http-extra-headers nil)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-09 13:27:39 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-08 22:18:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;; This variable doesn't exist in old versions of org-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defvar org-show-context-detail)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  exec-path-from-shell 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Sets environment variables by starting a shell.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-11-07 11:57:02 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package exec-path-from-shell
							 
						 
					
						
							
								
									
										
										
										
											2018-06-03 14:35:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled (not (equal system-type 'darwin))
							 
						 
					
						
							
								
									
										
										
										
											2016-11-07 11:57:02 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; For debugging
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (when nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (message "path: %s, setup: %s" (getenv "PATH")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               (getenv "ENVIRONMENT_SETUP_DONE"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (setq exec-path-from-shell-debug t))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq exec-path-from-shell-arguments (list "-l"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq exec-path-from-shell-check-startup-files nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-to-list 'exec-path-from-shell-variables "SHELL")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-to-list 'exec-path-from-shell-variables "GOPATH")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-to-list 'exec-path-from-shell-variables "ENVIRONMENT_SETUP_DONE")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-to-list 'exec-path-from-shell-variables "PYTHONPATH")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (exec-path-from-shell-initialize)))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-11-02 20:58:03 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  noflet 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package noflet
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :demand t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Non-Forking Shell Command To String 
						 
					
						
							
								
									
										
										
										
											2016-10-18 16:13:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Emacs' built in ~shell-command-to-string~  function has the downside that it
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								forks a new shell process every time it is executed. This means that any shell
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								startup cost is incurred when this function is called.
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 18:25:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The following implementation uses eshell's ~executable-find~  to find the
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 16:13:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								binary (which is the only reason ~shell-comand-to-string~  is typically used
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								anyway), but it avoids incurring any shell-startup cost.
							 
						 
					
						
							
								
									
										
										
										
											2016-08-21 22:23:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This was originally inspired by [[https://github.com/bbatsov/projectile/issues/1044 ][this issue ]].
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:call-process-to-string (program &rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (with-temp-buffer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (apply 'call-process program nil (current-buffer) nil args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (buffer-string)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:get-call-process-args-from-shell-command (command)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (cl-destructuring-bind
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (the-command . args) (split-string command " ")
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 18:25:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (let ((binary-path (executable-find the-command)))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (when binary-path
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (cons binary-path args)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:shell-command-to-string (command)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let ((call-process-args
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         (imalison:get-call-process-args-from-shell-command command)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (if call-process-args
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (apply 'imalison:call-process-to-string call-process-args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (shell-command-to-string command))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This makes it so that we always try to call-process instead of shell-command-to-sting. It may cause undesireable behavior.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:try-call-process (command)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let ((call-process-args
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         (imalison:get-call-process-args-from-shell-command command)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (if call-process-args
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:58:39 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        (apply 'imalison:call-process-to-string call-process-args))))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-29 12:55:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-29 12:55:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								This had to be disabled because it was causing a bunch of issues with projectile.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp :tangle no
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(advice-add 'shell-command-to-string :before-until 'imalison:try-call-process)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-29 12:55:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This solution only applies it to projectile-find-file
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:call-with-quick-shell-command (fn &rest args)
							 
						 
					
						
							
								
									
										
										
										
											2019-01-02 12:37:40 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (noflet
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ((shell-command-to-string (&rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              (condition-case _e
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                  (or (apply 'imalison:try-call-process args) (apply this-fn args))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                (error (apply this-fn args)))))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-29 12:55:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (apply fn args)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-01-02 12:37:40 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								;; I've had to disable this becuase newer versions of projectile use a ton of shell commands
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;; (advice-add 'projectile-files-via-ext-command :around 'imalison:call-with-quick-shell-command)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-29 12:55:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-09-22 16:25:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Set EMACS environment variable 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Emacs cask seems to depend on the EMACS environment variable being set to the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								binary path of emacs. I found the method for getting the path to the emacs
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								executable [[http://emacs.stackexchange.com/questions/6010/can-emacs-detect-the-path-of-its-executable ][here ]].
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setenv "EMACS"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (file-truename (expand-file-name invocation-name invocation-directory)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-09-22 17:09:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Update: It turns out that it is term-exec-1 that is causing this environment
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								variable to be set to something strange. When I tried to disable it, it seemed
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								to cause issues. Oh well...
							 
						 
					
						
							
								
									
										
										
										
											2017-01-11 15:23:41 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Don't use system font 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;; Let me control my own goddamn fonts
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;; XXX: This doesn't seem to work
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq font-use-system-font nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2017-04-21 15:12:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Set default browser 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(when (equal system-type 'gnu/linux)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq browse-url-browser-function 'browse-url-generic
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          browse-url-generic-program "xdg-open"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-06-21 14:47:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  Functions  
						 
					
						
							
								
									
										
										
										
											2016-08-15 15:56:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Join Paths 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Works in the same way as os.path.join in python
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:join-paths (root &rest dirs)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let ((result root))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (cl-loop for dir in dirs do
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             (setq result (concat (file-name-as-directory result) dir)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    result))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  Variables 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defvar imalison:projects-directory
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (imalison:join-paths (substitute-in-file-name "$HOME") "Projects"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defvar imalison:gpg-key)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 14:43:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Required Packages 
						 
					
						
							
								
									
										
										
										
											2016-08-10 19:49:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The packages in this section provide no functionality on their own,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								but provide support for writing custom elisp.
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 14:43:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  s 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package s :demand t)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 14:43:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 11:57:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  dash 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package dash
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 11:57:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (dash-enable-font-lock)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 14:43:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  gh 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package gh
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :defer t
							 
						 
					
						
							
								
									
										
										
										
											2017-12-14 13:57:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :straight (gh :type git :host github :repo "IvanMalison/gh.el"))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 14:43:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  shut-up 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package shut-up
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (defun imalison:shut-up-around (function &rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (shut-up (apply function args))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 14:43:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  parse-csv 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package parse-csv
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :demand t)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 14:43:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-08-15 15:56:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  emit 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package emit
							 
						 
					
						
							
								
									
										
										
										
											2017-12-14 13:57:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :straight (emit :type git :host github :repo "IvanMalison/emit"))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-15 15:56:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-09-07 14:10:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  request 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-25 15:14:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package request
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :defer t)
							 
						 
					
						
							
								
									
										
										
										
											2016-09-07 14:10:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:16:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Named Build 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								<<namedbuild >>
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 18:33:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								imalison:named-build provides a way to invoke a macro in such a way
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								that the lambda that it produces is given a name.
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 17:23:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 18:33:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defmacro imalison:named-build (name builder &rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  `(defalias (quote ,name) (,builder ,@args)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(put 'imalison:named-build 'lisp-indent-function 1)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 17:23:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 18:33:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								~imalison:named-builder-builder~  builds a macro from another macro 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								that builds lambda functions. The arguments to the macro that results
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								are exactly the same as those of the original macro, except that the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								first argument of the new macro is used to name the lambda produced by
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								the original macro (which is passed as the second argument to
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~imalison:named-builder-builder~ ). 
						 
					
						
							
								
									
										
										
										
											2016-06-21 14:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 18:33:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defmacro imalison:named-builder-builder (named-builder-name builder-name)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 14:31:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  `(progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (defmacro ,named-builder-name (function-name &rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         (cons 'imalison:named-build
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               (cons function-name
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                     (cons (quote ,builder-name) args))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (put (quote ,named-builder-name) 'lisp-indent-function 1)))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 18:33:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~imalison:named-builder~  runs ~imalison:named-builder-builder~  with the 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								convention that original macro to modify is the concatenation of the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								new macro name and the -fn suffix.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defmacro imalison:named-builder (name)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  `(imalison:named-builder-builder
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ,name ,(intern (concat (symbol-name name) "-fn"))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-21 14:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:16:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Emacs Version Predicate 
						 
					
						
							
								
									
										
										
										
											2016-08-10 18:38:16 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defmacro imalison:emacs-version-predicate-fn (major-version minor-version)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  `(lambda ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     (or (> emacs-major-version ,major-version)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         (and (>= emacs-major-version ,major-version)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (>= emacs-minor-version ,minor-version)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:check-emacs-version (major-version minor-version)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (funcall (imalison:emacs-version-predicate-fn major-version minor-version)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(imalison:named-builder imalison:emacs-version-predicate)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:16:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Compose Functions 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  A version supporting macros 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								<<composemacros >>
							 
						 
					
						
							
								
									
										
										
										
											2016-06-21 15:54:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 14:31:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:help-function-arglist (fn)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let ((result (help-function-arglist fn)))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (if (eq result t) '(&rest args) result)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 17:16:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defmacro imalison:compose-fn (&rest funcs)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (let* ((last-function (car (last funcs)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         (arguments (imalison:help-function-arglist last-function))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         (call-arguments (delq '&optional arguments)))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 16:34:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ;; When we have an &rest arguments there is no point in taking any
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; of the arguments by name, so we simply pass them all as an
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; argument list. See the comment below to understand how this
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; impacts the evaluation of the last function.
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (when (memq '&rest arguments)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (setq arguments '(&rest args))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (setq call-arguments '(args)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    `(imalison:compose-argspec ,arguments ,call-arguments ,@funcs)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defmacro imalison:compose-argspec (arguments call-arguments &rest funcs)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  "Build a new function with NAME that is the composition of FUNCS."
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  `(lambda ,arguments
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     (imalison:compose-helper ,funcs ,call-arguments)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defmacro imalison:compose-helper (funcs arguments)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  "Builds funcalls of FUNCS applied to the arg."
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (if (equal (length funcs) 1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (let ((last-function (car funcs)))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 16:34:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        ;; This hideous clause is here because it is the only way to
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ;; handle functions that take &rest args.
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        (when (memq '&rest (imalison:help-function-arglist last-function))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (setq last-function (apply-partially 'apply last-function)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        `(,last-function ,@arguments))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    `(,(car funcs)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (imalison:compose-helper ,(cdr funcs) ,arguments))))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 17:16:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 18:33:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defmacro imalison:compose-macro-fn (&rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  `(cons 'macro (imalison:compose-fn ,@args)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 17:16:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(imalison:named-builder imalison:compose)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 18:33:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(imalison:named-builder imalison:compose-macro)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-21 15:54:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:16:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  Arbitrary arguments at every step 
						 
					
						
							
								
									
										
										
										
											2016-08-10 12:56:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 18:33:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:make-list (thing)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (if (listp thing)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      thing
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (list thing)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defmacro imalison:compose-with-apply (&rest funcs)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  "Build a new function with NAME that is the composition of FUNCS."
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  `(lambda (&rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     (imalison:compose-with-apply-helper ,funcs)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defmacro imalison:compose-with-apply-helper (funcs)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  "Builds funcalls of FUNCS applied to the arg."
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (if (equal (length funcs) 0)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (quote args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    `(apply ,(car funcs)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (imalison:make-list (imalison:compose-with-apply-helper ,(cdr funcs))))))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 12:56:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:16:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  Simpler unary version 
						 
					
						
							
								
									
										
										
										
											2016-08-10 16:59:33 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 18:33:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defmacro imalison:compose-unary (&rest funcs)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  "Build a new function with NAME that is the composition of FUNCS."
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  `(lambda (arg)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     (imalison:compose-helper-unary ,funcs)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defmacro imalison:compose-helper-unary (funcs)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  "Builds funcalls of FUNCS applied to the arg."
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (if (equal (length funcs) 0)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'arg
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    `(funcall ,(car funcs) (imalison:compose-helper-unary ,(cdr funcs)))))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 16:59:33 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-11-02 18:12:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  With Advice 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Taken from [[http://emacs.stackexchange.com/questions/16490/emacs-let-bound-advice ][here ]].
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defmacro imalison:with-advice (args &rest body)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (declare (indent 1))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let ((fun-name (car args))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (advice   (cadr args))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (orig-sym (make-symbol "orig")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    `(cl-letf* ((,orig-sym  (symbol-function ',fun-name))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ((symbol-function ',fun-name)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                 (lambda (&rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                   (apply ,advice ,orig-sym args))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       ,@body)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:16:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Make Interactive 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 18:33:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defmacro imalison:make-interactive-fn (function)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  `(lambda (&rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     (apply ,function args)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(imalison:named-builder imalison:make-interactive)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:16:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  Advice Add Around Builder 
						 
					
						
							
								
									
										
										
										
											2016-08-10 16:26:31 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								For composing functions with an apply so that they can be used with
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								the ~:around~  keyword of advice-add.
							 
						 
					
						
							
								
									
										
										
										
											2016-06-22 15:21:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 17:01:25 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defmacro imalison:advice-add-around-builder-fn (&rest functions)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  `(imalison:compose-argspec
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (function &rest args) (function args) ,@functions apply))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 16:26:31 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 17:01:25 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(imalison:named-builder imalison:advice-add-around-builder)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-22 15:21:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:16:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  Kill New 
						 
					
						
							
								
									
										
										
										
											2016-06-22 15:21:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 18:33:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(imalison:advice-add-around-builder imalison:kill-new-around kill-new)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-22 15:21:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:16:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Let Around 
						 
					
						
							
								
									
										
										
										
											2016-08-10 17:01:25 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defmacro imalison:let-around-fn (orig-func &rest forms)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 14:53:18 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (let* ((orig-interactive-form (interactive-form orig-func))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         (docstring-form (format "Call `%s' with bindings: %s." orig-func forms))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         (additional-forms (list docstring-form)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (when orig-interactive-form
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 14:58:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (nconc additional-forms (list orig-interactive-form)))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 14:53:18 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    `(lambda (&rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       ,@additional-forms
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (let ,forms
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         (apply (quote ,orig-func) args)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(imalison:named-builder imalison:let-around)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 18:33:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:16:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Let Around Advice 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 17:01:25 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defmacro imalison:let-advise-around-fn (&rest forms)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  `(lambda (orig-func &rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     (let ,forms
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (apply orig-func args))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(imalison:named-builder imalison:let-advise-around)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:16:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-11-07 15:02:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Let Advise 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defmacro imalison:let-advise (advised-function &rest forms)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let ((advice-fn-name (imalison:concat-symbols
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         "around-advice-" advised-function)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    `(progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (imalison:let-advise-around ,advice-fn-name ,@forms)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (advice-add (quote ,advised-function) :around (quote ,advice-fn-name)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(put 'imalison:let-advise 'lisp-indent-function 1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:16:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Compose Around Builder 
						 
					
						
							
								
									
										
										
										
											2016-11-07 15:02:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								For composing functions with an apply so that they can be used with the ~:around~  keyword of advice-add.
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:16:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								;; TODO/XXX: Isn't this just apply? why doesn't apply work here
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:around-identity (fn &rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (apply fn args))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-13 08:33:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defmacro imalison:compose-around-builder-fn (&rest functions)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  `(imalison:compose-fn ,@functions imalison:around-identity))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(imalison:named-builder imalison:compose-around-builder)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:16:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  Measure Time 
						 
					
						
							
								
									
										
										
										
											2016-08-16 13:41:40 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defmacro imalison:measure-time (&rest body)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  "Measure and return the running time of the code block."
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (declare (indent defun))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let ((start (make-symbol "start")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    `(let ((,start (float-time)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       ,@body
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (- (float-time) ,start))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-06-22 15:22:27 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Add Files to ~org-agenda-files~ 
						 
					
						
							
								
									
										
										
										
											2016-06-21 17:03:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:add-to-org-agenda-files (incoming-files)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (setq org-agenda-files
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (delete-dups
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         (cl-loop for filepath in (append org-agenda-files incoming-files)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  when (and filepath (file-exists-p (file-truename filepath)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  collect (file-truename filepath)))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-21 17:03:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-06-22 15:22:27 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Get String From File 
						 
					
						
							
								
									
										
										
										
											2016-06-16 17:21:54 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:get-string-from-file (file-path)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  "Return file-path's file content."
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (with-temp-buffer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (insert-file-contents file-path)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (buffer-string)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 17:21:54 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-06-22 15:22:27 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Get Current Location 
						 
					
						
							
								
									
										
										
										
											2016-06-16 17:21:54 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:get-lat-long ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (condition-case _ex
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (mapcar 'string-to-number (s-split "," (s-trim (shell-command-to-string
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                                      "whereami"))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (error (list 37.7879312624533 -122.402388853402))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 17:21:54 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 10:56:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Haversine distance 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:sin2 (p)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let ((sin-p (sin p)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (* sin-p sin-p) ))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:haversine-distance
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (left-lat-long right-lat-long &optional radius)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ;; Default to earth radius in km
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (unless radius (setq radius 6378.1))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (cl-destructuring-bind (left-lat left-long) left-lat-long
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (cl-destructuring-bind (right-lat right-long) right-lat-long
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (let ((l1 (degrees-to-radians left-lat))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (f1 (degrees-to-radians left-long))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (l2 (degrees-to-radians right-lat))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (f2 (degrees-to-radians right-long)) )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (* 2 radius
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           (asin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (sqrt
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             (+ (imalison:sin2 (/ (- f2 f1) 2))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                (* (cos f2) (cos f1) (imalison:sin2 (/ (- l2 l1) 2))) ))))))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 10:56:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:13:26 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Font Size 
						 
					
						
							
								
									
										
										
										
											2016-10-06 18:24:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								This was taken from [[http://emacs.stackexchange.com/questions/7583/transiently-adjust-text-size-in-mode-line-and-minibuffer ][here ]] but it has diverged significantly from the original.
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:13:26 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-01-12 15:27:29 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar imalison:default-font-size-pt nil)
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 20:07:24 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-01-12 15:27:29 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:acceptable-default-font-size (value)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (and (numberp value) (< value 150) ( > value 50)))
							 
						 
					
						
							
								
									
										
										
										
											2017-01-11 12:50:57 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 20:07:24 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								;; XXX: hack to get proper default value when default is set to something crazy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:set-default-font-size (&rest args)
							 
						 
					
						
							
								
									
										
										
										
											2017-01-12 15:27:29 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
									
										
										
										
											2017-01-11 12:50:57 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (when (and (imalison:acceptable-default-font-size
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (face-attribute 'default :height))
							 
						 
					
						
							
								
									
										
										
										
											2017-01-12 15:27:29 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								             (not (imalison:acceptable-default-font-size
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                   imalison:default-font-size-pt)))
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 20:07:24 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq imalison:default-font-size-pt (face-attribute 'default :height))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(advice-add 'set-face-attribute :after 'imalison:set-default-font-size)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:13:26 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 12:11:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar imalison:huge-font-size 280)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:current-font-size ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (plist-get (custom-face-attributes-get 'default nil) :height))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:set-font-size (size)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 13:06:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (interactive (list (string-to-number (read-string "Enter a font size: "))))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 12:11:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (set-face-attribute 'default nil :height size))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 13:06:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:set-huge-font-size ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (imalison:set-font-size imalison:huge-font-size))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 12:11:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(cl-defun imalison:modify-font-size (&optional (arg 10))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (interactive "p")
							 
						 
					
						
							
								
									
										
										
										
											2017-01-26 16:59:08 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (unless imalison:default-font-size-pt
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (imalison:set-default-font-size))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 12:11:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (imalison:set-font-size (+ (imalison:current-font-size) arg)))
							 
						 
					
						
							
								
									
										
										
										
											2016-09-12 15:33:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-06 18:24:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:font-size-incr ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 12:11:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (imalison:modify-font-size +10))
							 
						 
					
						
							
								
									
										
										
										
											2016-09-12 15:33:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-06 18:24:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:font-size-decr ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 12:11:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (imalison:modify-font-size -10))
							 
						 
					
						
							
								
									
										
										
										
											2016-09-12 15:33:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-06 18:24:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:font-size-reset ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 12:11:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (imalison:set-font-size imalison:default-font-size-pt))
							 
						 
					
						
							
								
									
										
										
										
											2017-04-08 20:52:48 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:font-size-80chars ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (imalison:set-font-size 120))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:13:26 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-06-19 23:52:01 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Message Result Builder 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This macro is useful when writing emacs-lisp. It creates a new interactive command that shows you the result of evaluating a function, with optionally provided arguments.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defmacro imalison:message-result-builder (new-function-name function-to-call &rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  `(defun ,new-function-name ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     (message "%s" (apply (quote ,function-to-call) (list ,@args)))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-19 23:52:01 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This interactive functions allows the user the select a function to invoke using a freshly minted imalison:message-result-builder
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:message-result-builder-runtime (function &rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (lambda ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (message "%s" (apply function-to-call args))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-19 23:52:01 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:message-function-result (function)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive (find-function-read))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (message "%s" (funcall function)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-21 14:45:52 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-06-22 20:02:50 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Custom ~shell-command-on-region~ 
						 
					
						
							
								
									
										
										
										
											2016-06-21 14:45:52 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:copy-shell-command-on-region (start end command)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive (list (region-beginning) (region-end)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                     (read-shell-command "Shell command on region: ")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let ((original-buffer (current-buffer)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (with-temp-buffer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (let ((temp-buffer (current-buffer)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (with-current-buffer original-buffer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (shell-command-on-region start end command temp-buffer))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (let ((min (point-min))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (max (point-max)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-28 19:47:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          (kill-ring-save min max)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (buffer-substring min max))))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-21 14:45:52 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-06-23 16:56:27 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun region-if-active-otherwise-buffer ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (if (region-active-p)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (list (region-beginning) (region-end))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (list (buffer-end -1) (buffer-end 1))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(region-if-active-otherwise-buffer)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:shell-command-on-region-replace (start end command)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive (list (region-beginning) (region-end)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                     (read-shell-command "Shell command on region: ")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (shell-command-on-region start end command nil t))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-21 14:45:52 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-15 16:04:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(emit-prefix-selector imalison:shell-command-on-region
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 14:34:29 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  imalison:copy-shell-command-on-region
							 
						 
					
						
							
								
									
										
										
										
											2023-06-23 16:56:27 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  imalison:shell-command-on-region-replace
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  imalison:jq-replace)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:jq-replace (start end)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive (region-if-active-otherwise-buffer))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (imalison:shell-command-on-region-replace start end "jq ."))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-06-21 14:45:52 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-11-07 22:48:33 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Copy/Yank String Functions 
						 
					
						
							
								
									
										
										
										
											2016-06-21 14:45:52 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								A macro for composing functions together to build an interactive command to copy a string to the kill ring.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 19:44:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defmacro imalison:compose-copy-builder-fn (&rest funcs)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  `(imalison:make-interactive-fn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (imalison:compose-fn kill-new ,@funcs)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(imalison:named-builder imalison:compose-copy-builder)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-21 14:45:52 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  Copy portions of the buffer file name 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defmacro imalison:copy-buffer-file-path-builder (&rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  `(imalison:compose-copy-builder ,@args buffer-file-name))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-21 14:45:52 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(imalison:copy-buffer-file-path-builder imalison:copy-buffer-file-path-full)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(imalison:copy-buffer-file-path-builder imalison:copy-buffer-file-name
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        file-name-nondirectory)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(imalison:copy-buffer-file-path-builder imalison:copy-buffer-file-path
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        car
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        projectile-make-relative-to-root
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        list)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-21 14:45:52 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  Copy the current branch using magit 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(imalison:compose-copy-builder imalison:copy-current-git-branch
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                               magit-get-current-branch)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-19 23:52:01 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-11-07 22:48:33 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  Copy the current buffer name 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(imalison:compose-copy-builder imalison:copy-current-buffer-name
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  buffer-name)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-11-26 01:47:23 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  Copy the last message 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:last-message (&optional num)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (or num (setq num 1))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (if (= num 0)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (current-message)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (save-excursion
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (set-buffer "*Messages* ")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (save-excursion
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (forward-line (- 1 num))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (backward-char)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (let ((end (point)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (forward-line 0)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (buffer-substring-no-properties (point) end))))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(imalison:compose-copy-builder imalison:copy-last-message imalison:last-message)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-06-22 20:18:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Named Compile 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:named-compile (command)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   (list
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (let ((command (eval compile-command)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (if (or compilation-read-command current-prefix-arg)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (compilation-read-command command)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        command))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (compilation-start command nil (lambda (&rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                   (format "*compilation %s* " command))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-22 20:18:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-06-25 16:38:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  Replace Escape Sequences 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:replace-escape-sequences ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (shut-up
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (let* ((delimited (and transient-mark-mode mark-active))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           (beg (when delimited (region-beginning)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           (end (when delimited (region-end))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (save-excursion
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (perform-replace "\\t" "    " nil nil delimited nil nil beg end nil))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (save-excursion
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (perform-replace "\\n" "\n" nil nil delimited nil nil beg end nil)))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-21 15:28:10 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-09-07 14:10:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Download a File Into a Buffer 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:16:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								<<downloadfile >>
							 
						 
					
						
							
								
									
										
										
										
											2016-09-07 14:10:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2018-07-04 20:31:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:download-to-buffer (uri)
							 
						 
					
						
							
								
									
										
										
										
											2016-09-07 14:10:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (interactive (list (read-string "Enter uri: ")))
							 
						 
					
						
							
								
									
										
										
										
											2017-08-25 15:14:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (require 'request)
							 
						 
					
						
							
								
									
										
										
										
											2016-09-07 14:10:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (request uri
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           :parser 'buffer-string
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           :success (cl-function
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                     (lambda (&key data &allow-other-keys)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       (let ((created-buffer (get-buffer-create uri)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         (with-current-buffer created-buffer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           (insert data))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         (switch-to-buffer created-buffer))))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-09-22 13:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Concat With Symbols 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:maybe-symbol-name (arg)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (if (symbolp arg)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (symbol-name arg)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    arg))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:concat-symbols (&rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (intern (mapconcat 'imalison:maybe-symbol-name args "")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-09-22 18:12:45 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Edit a script on PATH 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:16:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								<<editscript >> Note that you'll need to make sure that emacs properly inherits
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 13:17:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								the path variable for this work. Check out my [[exec-path-from-shell ][exec-path-from-shell ]] config for
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:16:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								details.
							 
						 
					
						
							
								
									
										
										
										
											2016-09-22 18:12:45 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:get-executables-at-path (filepath)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (when (and (file-exists-p filepath) (f-directory? filepath))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (--filter (let ((fullpath (imalison:join-paths filepath it)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                (and (file-executable-p fullpath)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                     (not (f-directory? fullpath))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (directory-files filepath))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:get-executables-on-path ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (mapcan 'imalison:get-executables-at-path (eshell-parse-colon-path (getenv "PATH"))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:edit-script ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 18:25:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (find-file (executable-find
							 
						 
					
						
							
								
									
										
										
										
											2016-09-22 18:12:45 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								              (ido-completing-read "Select a script to edit: "
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                   (imalison:get-executables-on-path)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-09-23 17:56:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Toggle lexical binding in the current buffer 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:toggle-lexical-binding ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let ((new-binding (not lexical-binding)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (message "Setting lexical-binding to: %s" new-binding)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq lexical-binding new-binding)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 14:45:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Sync kill ring with copyq 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:copyq-get (i)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (imalison:shell-command-to-string (format "copyq eval read(%s)" i)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:copyq-sync ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let ((missing-items (cl-loop for i from 0 to (string-to-number
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         (imalison:shell-command-to-string "copyq eval size()"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         for item = (imalison:copyq-get i)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         when (not (member item kill-ring))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         collect item)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq kill-ring (nconc kill-ring missing-items))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 18:25:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(when (executable-find "copyq")
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 14:46:59 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 (run-with-idle-timer 10 nil 'imalison:copyq-sync))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 14:45:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-11-17 09:55:12 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Disable hooks 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(cl-defmacro imalison:disable-mode-hook (mode-name &optional (disable-value -1))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  `(defun ,(imalison:concat-symbols 'imalison:disable- mode-name) ()
							 
						 
					
						
							
								
									
										
										
										
											2023-06-21 17:52:19 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								     (when (fboundp ',mode-name)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (,mode-name ,disable-value))))
							 
						 
					
						
							
								
									
										
										
										
											2016-11-17 09:55:12 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(imalison:disable-mode-hook linum-mode)
							 
						 
					
						
							
								
									
										
										
										
											2017-03-18 11:44:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(imalison:disable-mode-hook nlinum-mode)
							 
						 
					
						
							
								
									
										
										
										
											2016-11-17 09:55:12 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(imalison:disable-mode-hook yas-minor-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2018-07-14 12:51:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Add a blacklist to a major mode 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Sometimes a major mode's syntax highlighting can take a really long time to load
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								in certain buffers. Usually you can just set a header to tell emacs not to run
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								the major mode, but for cases where you can't always edit the file ahead of time
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								this macro allows you to define a blacklist for your major mode that will
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								prevent the major mode from being enabled on that file.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+begin_src emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defmacro imalison:add-blacklist-to-major (major-mode-fn-symbol)
							 
						 
					
						
							
								
									
										
										
										
											2019-06-06 00:37:50 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (let ((blacklist-var-symbol
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         (imalison:concat-symbols major-mode-fn-symbol "-blacklist"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (check-blacklist-symbol
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         (imalison:concat-symbols major-mode-fn-symbol "-check-blacklist")))
							 
						 
					
						
							
								
									
										
										
										
											2018-07-14 12:51:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    `(progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (defvar ,blacklist-var-symbol nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (defun ,check-blacklist-symbol (mode-fn &rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         (unless (and (not (equal major-mode (quote ,major-mode-fn-symbol)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      (equal nil args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      (cl-loop for blacklist-regex in ,blacklist-var-symbol
							 
						 
					
						
							
								
									
										
										
										
											2019-06-06 00:37:50 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                               thereis (string-match blacklist-regex
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                                     (buffer-name))))
							 
						 
					
						
							
								
									
										
										
										
											2018-07-14 12:51:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								           (apply mode-fn args)))
							 
						 
					
						
							
								
									
										
										
										
											2019-06-06 00:37:50 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								       (advice-add (quote ,major-mode-fn-symbol)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                   :around (quote ,check-blacklist-symbol)))))
							 
						 
					
						
							
								
									
										
										
										
											2018-07-14 12:51:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+end_src
							 
						 
					
						
							
								
									
										
										
										
											2016-06-09 13:27:39 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Other 
						 
					
						
							
								
									
										
										
										
											2016-09-30 13:09:29 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The stuff in this section is pretty crusty. I don't think its used anywhere, but
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								I keep it around just in case I need it.
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 17:23:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun random-choice (choices)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (nth (random (length choices)) choices))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun display-prefix (arg)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  "Display the value of the raw prefix arg."
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive "p")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (message "%s" arg))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:uuid ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (s-replace "\n" "" (shell-command-to-string "uuid")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:disable-smartparens-mode ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (smartparens-mode 0))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:insert-uuid ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (insert (imalison:uuid)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:compare-int-list (a b)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (when (and a b)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (cond ((> (car a) (car b)) 1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          ((< (car a) (car b)) -1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (t (imalison:compare-int-list (cdr a) (cdr b))))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun get-date-created-from-agenda-entry (agenda-entry)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (org-time-string-to-time
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   (org-entry-get (get-text-property 1 'org-marker agenda-entry) "CREATED")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defmacro defvar-setq (name value)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  `(if (boundp (quote ,name))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (setq ,name ,value)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     (defvar ,name ,value)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun eval-region-or-last-sexp ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (if (region-active-p) (call-interactively 'eval-region)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (call-interactively 'eval-last-sexp)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun undo-redo (&optional arg)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive "P")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (if arg (undo-tree-redo) (undo-tree-undo)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun up-list-region ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (up-list) (set-mark-command nil) (backward-sexp))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun up-list-back ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (up-list) (backward-sexp))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun frame-exists ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (cl-find-if
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   (lambda (frame)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     (assoc 'display (frame-parameters frame))) (frame-list)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 17:23:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun make-frame-if-none-exists ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let* ((existing-frame (frame-exists)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (if existing-frame
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        existing-frame
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (make-frame-on-display (getenv "DISPLAY")))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 17:23:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun make-frame-if-none-exists-and-focus ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (make-frame-visible (select-frame (make-frame-if-none-exists))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 17:23:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun notification-center (title message)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (cl-flet ((encfn (s) (encode-coding-string s (keyboard-coding-system))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (shell-command
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     (format "osascript -e 'display notification \"%s\" with title \"%s\"'"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             (encfn message) (encfn title)))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 17:23:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun growl-notify (title message)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (shell-command (format "grownotify -t %s -m %s" title message)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 17:23:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun notify-send (title message)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (shell-command (format "notify-send -u critical %s %s" title message)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 17:23:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar notify-function
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (cond ((eq system-type 'darwin) 'notification-center)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ((eq system-type 'gnu/linux) 'notify-send)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 15:55:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 16:10:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								;; TODO: fix
							 
						 
					
						
							
								
									
										
										
										
											2016-08-15 16:04:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(emit-prefix-selector imalison:mark-ring
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                      mark-ring)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 16:10:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Keyboard Macros 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  For editing literate config 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								****  extract-current-sexp-to-src-block 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 This keyboard macro extracts the current sexp to an emacs-lisp source block of its own
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 #+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(fset 'extract-current-sexp-to-src-block
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      [?\C-a return ?\C-p ?# ?+ ?E ?N ?D ?_ ?S ?R ?C return ?# ?+  ?B ?E ?G ?I ?N ?_ ?S ?R ?C ?  ?e ?m ?a ?c ?s ?- ?l ?i ?s ?p ?\C-a ?\C-p ?\C-  ?\C-n ?\C-e ?\M-w ?\C-n ?\C-a ?\C-\M-f return ?\C-y])
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 16:10:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 #+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								****  name-source-block-for-use-package-name 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 #+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(fset 'name-source-block-for-use-package-name
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      [?\C-c ?\' ?\M-< ?\C-s ?u ?s ?e ?- ?p ?a ?c ?k return ?\C-\M-f ?\C-f ?\C-  ?\C-\M-f ?\M-w ?\C-c ?\' ?\C-r ?B ?E ?G ?I ?N return ?\C-a ?\C-p ?\C-e return ?* ?  ?\C-y])
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 #+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								****  extract-and-name-use-package-block 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 #+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(fset 'extract-and-name-use-package-block
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      [?\C-a return ?\C-p ?# ?+ ?E ?N ?D ?_ ?S ?R ?C return ?# ?+  ?B ?E ?G ?I ?N ?_ ?S ?R ?C ?  ?e ?m ?a ?c ?s ?- ?l ?i ?s ?p ?\C-a ?\C-p ?\C-  ?\C-n ?\C-e ?\M-w ?\C-n ?\C-a ?\C-\M-f return ?\C-y ?\C-p ?\C-p ?\C-c ?\' ?\M-< ?\C-s ?u ?s ?e ?- ?p ?a ?c ?k return ?\C-\M-f ?\C-f ?\C-  ?\C-\M-f ?\M-w ?\C-c ?\' ?\C-r ?B ?E ?G ?I ?N return ?\C-a ?\C-p ?\C-e return ?* ?  ?\C-y])
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 #+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2018-06-03 14:18:54 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  Man-mode  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Man page escape sequences aren't properly handled by emacs pager. This function
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fixes that, but for now, it needs to be run manually, since I haven't figured
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								out how to detect that a buffer is a man mode buffer.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package man
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:fontify-man-page-buffer ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (read-only-mode -1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (Man-fontify-manpage)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (read-only-mode +1))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  General  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  User Info 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq user-full-name
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (replace-regexp-in-string "\n$" "" (shell-command-to-string
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                          "git config --get user.name")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq user-mail-address
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (replace-regexp-in-string "\n$" "" (shell-command-to-string
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                          "git config --get user.email")))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Sane Defaults 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp -n -r
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(global-auto-revert-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(show-paren-mode 1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq reb-re-syntax 'string)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq ad-redefinition-action 'accept)              (ref:ad-redefinition-action)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 15:12:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(setq-default find-file-visit-truename t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq large-file-warning-threshold (* 25 1024 1024))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq line-move-visual t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq require-final-newline t)
							 
						 
					
						
							
								
									
										
										
										
											2023-06-21 17:52:19 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(when (fboundp 'pixel-scroll-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (pixel-scroll-mode 1))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[[(ad-redefinition-action) ][This ]] is set because [[(y-or-n-p-only) ][this alias ]] causes annoying messaging at startup.
							 
						 
					
						
							
								
									
										
										
										
											2016-11-08 13:47:13 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  System Clipboard 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq save-interprogram-paste-before-kill t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Line Numbers 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:34:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(line-number-mode t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(column-number-mode t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2017-03-18 11:44:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  nlinum 
						 
					
						
							
								
									
										
										
										
											2017-11-14 21:11:52 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Disabling line numbers because they are slow as fuck.
							 
						 
					
						
							
								
									
										
										
										
											2017-03-18 11:44:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package nlinum
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 21:11:52 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2017-03-18 11:44:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'prog-mode-hook (lambda () (nlinum-mode t)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison-nlinum-mode-hook ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (when nlinum-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (setq-local nlinum-format
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    (concat "%" (number-to-string
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                 ;; Guesstimate number of buffer lines.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                 (ceiling (log (max 1 (/ (buffer-size) 80)) 10)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            "d"))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'nlinum-mode-hook #'imalison-nlinum-mode-hook)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:34:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Backups 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  Put them all in one directory 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defconst emacs-tmp-dir
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (format "%s/%s%s/ " temporary-file-directory "emacs" (user-uid)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq backup-directory-alist `((".*" . ,emacs-tmp-dir)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq auto-save-file-name-transforms `((".*" ,emacs-tmp-dir t)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq auto-save-list-file-prefix emacs-tmp-dir)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  Completely disable backups 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq backup-inhibited t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq make-backup-files nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq auto-save-default nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  Prompts 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  No popup frames 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq ns-pop-up-frames nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq pop-up-frames nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  boolean (yes-or-no) 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp -n -r
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defadvice yes-or-no-p (around prevent-dialog activate)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  "Prevent yes-or-no-p from activating a dialog"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let ((use-dialog-box nil))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ad-do-it))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defadvice y-or-n-p (around prevent-dialog-yorn activate)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  "Prevent y-or-n-p from activating a dialog"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let ((use-dialog-box nil))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ad-do-it))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defalias 'yes-or-no-p 'y-or-n-p)                           (ref:y-or-n-p-only)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  No dialog boxes 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq use-dialog-box nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  Splitting 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun split-horizontally-for-temp-buffers () (split-window-horizontally))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(add-hook 'temp-buffer-setup-hook 'split-horizontally-for-temp-buffers)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq split-height-threshold nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq split-width-threshold 160)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Time in Mode Line 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq display-time-default-load-average nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq display-time-interval 1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq display-time-format "%a|%m-%d|%r")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(display-time-mode +1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-11-04 18:29:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Buffer Display 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  ewmctrl 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package ewmctrl
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer t)
							 
						 
					
						
							
								
									
										
										
										
											2016-11-04 18:29:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2017-04-17 23:27:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  frame-mode 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2018-06-16 19:17:30 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar imalison:use-frame-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (s-contains? "xmonad" (shell-command-to-string "wmctrl -m")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package frame-mode
							 
						 
					
						
							
								
									
										
										
										
											2017-09-09 15:31:16 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :if imalison:use-frame-mode
							 
						 
					
						
							
								
									
										
										
										
											2017-04-17 23:27:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-hook 'frame-mode-hook (lambda () (display-time-mode -1)))
							 
						 
					
						
							
								
									
										
										
										
											2017-04-17 23:27:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (frame-mode +1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (frame-keys-mode +1)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-11-07 16:03:59 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  Handle xrefs annoying dedicated window garbage 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2019-05-25 21:22:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package xref)
							 
						 
					
						
							
								
									
										
										
										
											2016-11-07 16:03:59 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Fill Setup 
						 
					
						
							
								
									
										
										
										
											2016-08-23 15:56:30 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Get rid of nags about requiring setences to end with two spaces.
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq sentence-end-double-space nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-08-23 15:56:30 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Set the default fill-column
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq-default fill-column 80)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-21 21:51:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Show Trailing Whitespace 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Trailing whitespace is really messy and annoying, which makes this a must-have
							 
						 
					
						
							
								
									
										
										
										
											2017-02-28 20:24:48 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								in my opinion. It's kind of crazy how often you will encounter serious codebases with random whitespace ALL over the place.
							 
						 
					
						
							
								
									
										
										
										
											2016-10-21 21:51:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-02-28 20:24:48 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(setq-default show-trailing-whitespace nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:show-trailing-whitespace ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (setq show-trailing-whitespace t))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(add-hook 'text-mode-hook 'imalison:show-trailing-whitespace)
							 
						 
					
						
							
								
									
										
										
										
											2017-03-10 15:09:56 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(add-hook 'prog-mode-hook 'imalison:show-trailing-whitespace)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-21 21:51:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-21 22:27:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  Disable 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Unfortunately, this setting can get annoying in a lot of modes, which is why I
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								use this hook to disable it in those modes
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:disable-show-trailing-whitespace ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (setq show-trailing-whitespace nil))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Encoding 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								UTF-8 everywhere
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:set-coding-systems ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (set-language-environment "Latin-1")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (set-default-coding-systems 'utf-8)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (unless (eq system-type 'windows-nt)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (set-selection-coding-system 'utf-8))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (set-terminal-coding-system 'utf-8)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (setq locale-coding-system 'utf-8)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (prefer-coding-system 'utf-8))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(imalison:set-coding-systems)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Disable CJK coding/encoding (Chinese/Japanese/Korean characters)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq utf-translate-cjk-mode nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  Visible Bell 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This is set to true to disable the annoying audible bell that plays
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								whenever there is an error.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq visible-bell t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  Configure ~vc~ 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq vc-follow-symlinks t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-09-30 15:47:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Kill Ring 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq kill-ring-max 1000)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-08-24 01:36:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Subword 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This makes ~forward-word~  and ~backward-word~  understand snake and camel case.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq c-subword-mode t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(global-subword-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  Scratch Buffer 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq initial-scratch-message "")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-08-26 16:35:39 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Don't prompt about local variables 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun risky-local-variable-p (&rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-09-19 16:39:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  proced 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								proced is an top like utility that runs inside of emacs. The following sets auto updating automatically and makes the update interval faster.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-24 12:06:03 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package proced
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :defer t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq proced-auto-update-interval 1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'proced-mode-hook (lambda () (proced-toggle-auto-update +1)))))
							 
						 
					
						
							
								
									
										
										
										
											2016-09-19 16:39:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-09 23:01:43 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Set epa program 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq epg-gpg-program "gpg")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-09-27 15:14:12 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Make files executable 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(add-hook 'after-save-hook 'executable-make-buffer-file-executable-if-script-p)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Misc 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defvar iedit-toggle-key-default nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(put 'set-goal-column 'disabled nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(auto-fill-mode -1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq indent-tabs-mode nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq confirm-nonexistent-file-or-buffer nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;; No prompt for killing a buffer with processes attached.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq kill-buffer-query-functions
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (remq 'process-kill-buffer-query-function
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            kill-buffer-query-functions))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq inhibit-startup-message t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      inhibit-startup-echo-area-message t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;; Make buffer names unique.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq uniquify-buffer-name-style 'forward)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;; Don't disable commands...
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq disabled-command-function nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;; Make forward word understand camel and snake case.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;; Preserve pastes from OS when saving a new item to the kill
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;; ring. Why wouldn't this be enabled by default?
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq-default cursor-type 'box)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq-default cursor-in-non-selected-windows 'bar)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(when nil ;; Causing too many annoying issues
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (add-hook 'after-init-hook '(lambda () (setq debug-on-error t))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;; Make mouse scrolling less jumpy.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq mouse-wheel-scroll-amount '(1 ((shift) . 1)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq ediff-split-window-function 'split-window-horizontally)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq ediff-window-setup-function 'ediff-setup-windows-plain)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;; Disable this per major mode or maybe using file size if it causes
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;; performance issues?
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq imenu-auto-rescan t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq imenu-max-item-length 300)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(put 'narrow-to-region 'disabled nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(put 'narrow-to-page 'disabled nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq echo-keystrokes 0.25)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;; text mode stuff:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(remove-hook 'text-mode-hook #'turn-on-auto-fill)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(add-hook 'text-mode-hook 'turn-on-visual-line-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq sentence-end-double-space nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;; y and n instead of yes and no
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-08-24 01:36:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:12:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq-default c-basic-offset 4
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              tab-width 4
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              indent-tabs-mode t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(add-hook 'prog-mode-hook (lambda () (auto-fill-mode -1)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;; (add-hook 'prog-mode-hook 'flyspell-prog-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;; (add-hook 'prog-mode-hook (lambda () (highlight-lines-matching-regexp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;;                                  ".\\{81\\}" 'hi-blue)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  paradox 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Paradox is a package.el extension. I have no use for it now that I use straight.el.
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package paradox
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :commands (paradox-upgrade-packages paradox-list-packages)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (require 'gh)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq paradox-execute-asynchronously t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          paradox-github-token (gh-auth-get-oauth-token))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2023-06-20 20:17:00 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  gcmh 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+begin_src emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package gcmh
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config (gcmh-mode 1))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+end_src
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  diminish 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package diminish
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (defvar imalison:packages-to-diminish
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    '(auto-revert-mode smartparens-mode eldoc-mode tern-mode js2-refactor-mode))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (cl-loop for package in imalison:packages-to-diminish
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             do (diminish package))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (eval-after-load 'subword '(diminish 'subword-mode))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (eval-after-load 'simple '(diminish 'visual-line-mode))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  edit-server 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package edit-server
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands edit-server-start
							 
						 
					
						
							
								
									
										
										
										
											2018-02-02 15:15:23 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer 1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (edit-server-start)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq edit-server-new-frame nil)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2018-02-02 15:15:23 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  atomic-chrome 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package atomic-chrome
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :defer 1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (atomic-chrome-start-server)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq atomic-chrome-buffer-open-style 'frame)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  load-dir 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:34:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package load-dir
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq load-dir-debug nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-to-list 'load-dirs "~/.emacs.d/load.d")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defvar site-lisp "/usr/share/emacs24/site-lisp/ ")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (when (file-exists-p site-lisp) (add-to-list 'load-dirs site-lisp))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:34:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  server 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package server
							 
						 
					
						
							
								
									
										
										
										
											2018-06-05 16:05:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2018-07-14 12:51:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (setq server-use-tcp nil)
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 21:12:06 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defvar imalison:default-server-file
							 
						 
					
						
							
								
									
										
										
										
											2017-10-05 15:24:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (imalison:join-paths user-emacs-directory "server" "server"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:main-emacs-server-name ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (file-name-nondirectory
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 21:12:06 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								       (file-truename imalison:default-server-file)))
							 
						 
					
						
							
								
									
										
										
										
											2017-09-08 00:06:25 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defun imalison:make-main-emacs-server ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (interactive)
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 21:12:06 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (unless (string-equal server-name (imalison:main-emacs-server-name))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (if (string-equal server-name "server")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (error "Unable to set main server name 'server'.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The file server file for this emacs instance no longer exists.")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (delete-file imalison:default-server-file)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (make-symbolic-link (imalison:join-paths user-emacs-directory "server" server-name)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                imalison:default-server-file)))))
							 
						 
					
						
							
								
									
										
										
										
											2017-10-13 22:12:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defun imalison:get-this-server-filepath ()
							 
						 
					
						
							
								
									
										
										
										
											2017-08-28 16:44:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (let ((server-dir (if server-use-tcp server-auth-dir server-socket-dir)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (expand-file-name server-name server-dir)))
							 
						 
					
						
							
								
									
										
										
										
											2018-07-05 13:14:28 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (when (equal nil (server-running-p)) (server-start)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (imalison:make-main-emacs-server))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  list-environment 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package list-environment)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  bug-hunter 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package bug-hunter)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  shackle 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package shackle
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (diminish 'shackle-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (when nil                           ; disabled for now
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (shackle-mode))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq shackle-inhibit-window-quit-on-same-windows t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq shackle-default-rule '(:same t))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  beacon 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package beacon
							 
						 
					
						
							
								
									
										
										
										
											2021-07-18 20:20:00 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2016-11-07 17:22:17 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
									
										
										
										
											2018-12-07 13:41:48 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :diminish beacon-mode
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :bind ("C-c b" . beacon-blink)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (beacon-mode 1))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-21 21:54:31 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  iregister 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package iregister)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  discover-my-major 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package discover-my-major)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  refine 
						 
					
						
							
								
									
										
										
										
											2016-07-16 01:05:02 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-04 13:22:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package refine
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-16 01:05:02 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  winner 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:34:26 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-24 12:07:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package winner
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands (winner-undo winner-redo)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind ("C-c q" . imalison:winner-hydra/body)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defhydra imalison:winner-hydra ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      "Winner"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("p" winner-undo "back")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("n" winner-redo "forward" :exit t))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (winner-mode 1)))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:34:26 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-19 17:10:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  eyebrowse 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								I don't have any use for this now that I use frames mode, but its an interesting idea.
							 
						 
					
						
							
								
									
										
										
										
											2016-10-19 17:10:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-10-19 17:59:01 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package eyebrowse
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2016-10-19 17:59:01 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer 1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn (eyebrowse-mode +1)))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-19 17:10:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-11-02 23:15:48 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  stream 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2019-06-06 00:37:50 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package stream :defer t)
							 
						 
					
						
							
								
									
										
										
										
											2016-11-02 23:15:48 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-11-02 20:25:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  tile 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package tile
							 
						 
					
						
							
								
									
										
										
										
											2016-11-02 20:52:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :bind ("C-c t" . imalison:hydra-tile/body)
							 
						 
					
						
							
								
									
										
										
										
											2016-11-02 20:25:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-11-02 20:52:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defvar imalison:tall-tile-strategy (tile-split-n-tall 3))
							 
						 
					
						
							
								
									
										
										
										
											2016-11-04 08:54:24 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defvar imalison:wide-tile-strategy tile-wide)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defvar imalison:master-tile-strategy (tile-argument-buffer-fetcher
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                           :layout tile-master-left))
							 
						 
					
						
							
								
									
										
										
										
											2017-08-25 15:14:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (require 'hydra)
							 
						 
					
						
							
								
									
										
										
										
											2016-11-02 20:52:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defhydra imalison:hydra-tile
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      "tile"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("t" (tile :strategy imalison:tall-tile-strategy))
							 
						 
					
						
							
								
									
										
										
										
											2016-11-04 08:54:24 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      ("w" (tile :strategy imalison:wide-tile-strategy))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("m" (tile :strategy imalison:master-tile-strategy))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("s" tile-select)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("0" (tile :strategy tile-one))
							 
						 
					
						
							
								
									
										
										
										
											2016-11-02 20:52:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      ("n" tile)
							 
						 
					
						
							
								
									
										
										
										
											2016-11-04 08:54:24 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      ("l" winner-undo))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq tile-cycler
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (tile-strategies :strategies
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           (list imalison:tall-tile-strategy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                 imalison:master-tile-strategy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                 imalison:wide-tile-strategy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                 tile-one)))))
							 
						 
					
						
							
								
									
										
										
										
											2016-11-02 20:25:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  fill-column-indicator 
						 
					
						
							
								
									
										
										
										
											2016-08-23 16:15:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								This interferes with too many other packages. See
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								https://github.com/alpaker/Fill-Column-Indicator/issues/21 for more details
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package fill-column-indicator
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun fci-on-off-fci-before-company (command)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (when (string= "show" command)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (turn-off-fci-mode))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (when (string= "hide" command)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (turn-on-fci-mode)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (advice-add 'company-call-frontends :before #'fci-on-off-fci-before-company)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'prog-mode-hook 'fci-mode)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 19:41:43 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  highlight-indent-guides 
						 
					
						
							
								
									
										
										
										
											2017-01-26 16:58:24 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								If the load-theme hook from this package starts causing trouble check for
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								custom-set-faces in your custom file.
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 19:41:43 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package highlight-indent-guides
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands highlight-indent-guides-mode
							 
						 
					
						
							
								
									
										
										
										
											2019-01-02 12:38:48 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :diminish highlight-indent-guides-mode
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 19:41:43 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 16:36:33 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'prog-mode-hook 'highlight-indent-guides-mode))
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 19:41:43 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq highlight-indent-guides-method 'fill)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2023-06-13 22:21:03 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  gptel 
						 
					
						
							
								
									
										
										
										
											2023-05-14 15:17:37 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+begin_src emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package gptel
							 
						 
					
						
							
								
									
										
										
										
											2023-06-13 22:21:03 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :bind (("C-c g" . gptel-menu))
							 
						 
					
						
							
								
									
										
										
										
											2023-05-14 15:17:37 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2023-06-13 22:21:03 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-to-list 'gptel-directives '(finish-code . "You are a large language model and a careful programmer. Provide code that completes what is provided and only code as output without any additional text, prompt or note."))
							 
						 
					
						
							
								
									
										
										
										
											2023-05-14 15:17:37 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ;; (setq gptel-model "gpt-4")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+end_src
							 
						 
					
						
							
								
									
										
										
										
											2018-06-25 20:17:01 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  helpful  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+begin_src emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package helpful
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind (("C-h f" . helpful-callable)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("C-h v" . helpful-variable)
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								         ("C-h k" . helpful-key)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("C-h a" . describe-symbol)))
							 
						 
					
						
							
								
									
										
										
										
											2018-06-25 20:17:01 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+end_src
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  Keybindings  
						 
					
						
							
								
									
										
										
										
											2016-10-29 02:19:43 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  god-mode 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package god-mode
							 
						 
					
						
							
								
									
										
										
										
											2017-02-19 15:45:24 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2016-10-29 02:19:43 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (global-set-key (kbd "<escape >") 'god-local-mode)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  bind-key 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:06:30 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package bind-key)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:06:30 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  which-key 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:06:30 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package which-key
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq which-key-idle-delay .50)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (diminish 'which-key-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (which-key-mode)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:06:30 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  hydra 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:06:30 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package hydra
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 17:48:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :bind (("C-c f" . imalison:hydra-font/body)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-08 19:19:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								         ("C-c y" . imalison:hydra-yank/body)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								         ("C-c 6" . imalison:compile/body))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 12:55:54 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 17:48:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  Font Settings 
						 
					
						
							
								
									
										
										
										
											2016-10-25 12:55:54 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								<<fontsizehydra >>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 #+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 17:48:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defhydra imalison:hydra-font
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 12:55:54 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  nil
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 17:48:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  "Font Settings"
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 12:55:54 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  ("-" imalison:font-size-decr "Decrease")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ("d" imalison:font-size-decr "Decrease")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ("=" imalison:font-size-incr "Increase")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ("+" imalison:font-size-incr "Increase")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ("i" imalison:font-size-incr "Increase")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ("h" imalison:set-huge-font-size "Huge")
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 17:48:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  ("a" imalison:appearance "Set Default Appearance")
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 12:55:54 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  ("f" set-frame-font "Set Frame Font")
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  ("t" load-theme "Choose Emacs Theme")
							 
						 
					
						
							
								
									
										
										
										
											2017-04-08 20:52:48 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  ("0" imalison:font-size-reset "Reset to default size")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ("8" imalison:font-size-80chars "80 chars 3 columns font size"))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 12:55:54 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-11-07 22:48:33 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  Copy/Yanking 
						 
					
						
							
								
									
										
										
										
											2016-10-25 12:55:54 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defhydra imalison:hydra-yank
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  "Yank text"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ("p" imalison:copy-buffer-file-path "Projectile path")
							 
						 
					
						
							
								
									
										
										
										
											2017-04-08 02:52:00 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  ("b" imalison:copy-current-buffer-name "Buffer Name")
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 12:55:54 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  ("f" imalison:copy-buffer-file-path-full "Full path")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ("n" imalison:copy-buffer-file-name "File name")
							 
						 
					
						
							
								
									
										
										
										
											2017-04-08 02:52:00 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  ("g" imalison:copy-current-git-branch "Git Branch")
							 
						 
					
						
							
								
									
										
										
										
											2016-11-26 01:47:23 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  ("m" imalison:copy-last-message "Last Message"))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 12:55:54 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  Compile 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:make-test ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let ((default-directory (projectile-project-root)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (imalison:named-compile "make test")))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 12:55:54 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:glide-up ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (imalison:named-compile "glide up"))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-03-16 00:09:34 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:stack-build ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let ((frame-mode-use-new-frame-or-window t))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (imalison:named-compile "stack build")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-11-29 17:37:34 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:nix-build ()
							 
						 
					
						
							
								
									
										
										
										
											2018-06-17 03:02:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let ((frame-mode-use-new-frame-or-window t))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (imalison:named-compile "nix-build default.nix")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 12:55:54 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defhydra imalison:compile nil "Compile"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ("c" imalison:named-compile "Enter Custom Command")
							 
						 
					
						
							
								
									
										
										
										
											2018-03-16 00:09:34 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  ("s" imalison:stack-build "Stack build")
							 
						 
					
						
							
								
									
										
										
										
											2018-06-17 03:02:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  ("n" imalison:nix-build "Nix build")
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 12:55:54 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  ("t" imalison:make-test "Test")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ("u" imalison:glide-up "Update Dependencies"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;; The following parens close the use-package/progn created several blocks above
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:06:30 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-05 04:28:44 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  kill-emacs 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This ensures that C-x C-c will always kill emacs, even if we are running in server mode.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(bind-key "C-x C-c" 'kill-emacs)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  imenu 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								imenu is the best. This should be a default binding.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(bind-key "C-x C-i" 'imenu)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  undo 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								I can't shake the habit of using this keybinding for undo. I should really use the default of C-/.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(bind-key "C--" 'undo)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  other-window 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Go the other way when you use capital O.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(bind-key "C-x O" (lambda () (interactive) (other-window -1)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-06 17:41:12 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Mark ring 
						 
					
						
							
								
									
										
										
										
											2016-10-05 04:28:44 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(bind-key "C-c SPC" 'imalison:mark-ring)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-06 17:41:12 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  Other bindings 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-10-05 04:28:44 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(bind-key "C-x p" 'pop-to-mark-command)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq set-mark-command-repeat-pop t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(bind-key "C-x C-b" 'buffer-menu)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(bind-key "C-x C-r" (lambda () (interactive) (revert-buffer t t)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(bind-key "C-x w" 'whitespace-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(bind-key "M-n" 'forward-paragraph)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(bind-key "M-p" 'backward-paragraph)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(bind-key "C-M-<backspace >" 'backward-kill-sexp)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(bind-key "s-<return >" 'toggle-frame-fullscreen)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(bind-key "M-|" 'imalison:shell-command-on-region)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(bind-key "C-x 9" 'previous-buffer)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(bind-key "s-v" 'clipboard-yank)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  global-set-key-to-use-package 
						 
					
						
							
								
									
										
										
										
											2016-10-06 17:41:12 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								This might be useless, but I believe that it is a macro that converts between
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								bind-key and global-set-key forms.
							 
						 
					
						
							
								
									
										
										
										
											2016-10-05 04:28:44 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(fset 'global-set-key-to-use-package
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (lambda (&optional arg) "Keyboard macro." (interactive "p")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (kmacro-exec-ring-item
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         (quote ([1 67108896 19 100 6 23 40 19 41 return
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    backspace 32 46 6 4] 0 "%d")) arg)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  OSX 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(when (equal system-type 'darwin)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (setq mac-option-modifier 'meta)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (setq mac-command-modifier 'super))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2023-06-21 17:52:19 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  xref 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+begin_src emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package xref
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind ("M-," . xref-go-back))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+end_src
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  Navigation  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  zop-to-char 
						 
					
						
							
								
									
										
										
										
											2016-06-09 13:01:52 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package zop-to-char
							 
						 
					
						
							
								
									
										
										
										
											2016-08-21 22:29:52 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :bind ("M-z" . zop-to-char)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :init
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 18:13:13 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq zop-to-char-kill-keys '(?\C-k ?\C-w))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-21 22:29:52 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq zop-to-char-quit-at-point-keys '(?\r))))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2019-01-11 13:40:25 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-06-09 13:01:52 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  projectile 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package projectile
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind (("C-x f" . projectile-find-file-in-known-projects)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("C-c p f" . imalison:projectile-find-file))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defmacro imalison:projectile-do-in-project (project-dir &rest forms)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      `(imalison:with-default-directory ,project-dir
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (noflet ((projectile-project-root (&rest args) ,project-dir))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          ,@forms)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defmacro imalison:with-default-directory (directory &rest forms)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      `(let ((default-directory ,directory))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ,@forms))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:do-rg-default-directory (&rest args)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (interactive)
							 
						 
					
						
							
								
									
										
										
										
											2023-07-28 02:17:25 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (apply 'consult-ripgrep default-directory args))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-13 01:22:06 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (emit-prefix-selector imalison:do-rg
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                          consult-ripgrep
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          imalison:do-rg-default-directory)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (emit-prefix-selector imalison:projectile-find-file
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                          projectile-find-file
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          projectile-find-file-other-window)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-13 01:22:06 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (imalison:let-around imalison:set-options-do-rg
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      imalison:do-rg)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-09-20 02:21:19 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defun imalison:projectile-make-all-subdirs-projects (directory)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (cl-loop for file-info in (directory-files-and-attributes directory)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               do (when (nth 1 file-info)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    (write-region "" nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                  (expand-file-name
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                   (concat directory "/"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                           (nth 0 file-info) "/.projectile")))))))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2018-12-07 13:42:06 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (projectile-global-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq projectile-require-project-root nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq projectile-enable-caching nil)
							 
						 
					
						
							
								
									
										
										
										
											2021-07-31 19:52:31 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq projectile-git-submodule-command nil)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (diminish 'projectile-mode)
							 
						 
					
						
							
								
									
										
										
										
											2023-03-13 01:22:06 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (bind-key* "C-c p s" 'imalison:do-rg)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (bind-key* "C-c p f" 'imalison:projectile-find-file)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  ido 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-21 22:27:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package ido
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2017-08-26 19:14:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
									
										
										
										
											2016-08-21 22:27:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :commands ido-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (ido-mode 1)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-27 16:08:00 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq ido-auto-merge-work-directories-length -1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          ido-default-buffer-method 'selected-window
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          ido-use-virtual-buffers t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          ido-use-filename-at-point nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          ido-create-new-buffer 'always)
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (ido-everywhere +1)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-21 22:27:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq ido-enable-flex-matching t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (use-package flx-ido
							 
						 
					
						
							
								
									
										
										
										
											2017-08-26 14:13:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      :defer 5
							 
						 
					
						
							
								
									
										
										
										
											2016-08-21 22:27:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ;; disable ido faces to see flx highlights.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ;; This makes flx-ido much faster.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (setq gc-cons-threshold 20000000)
							 
						 
					
						
							
								
									
										
										
										
											2017-08-25 12:55:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        (flx-ido-mode 1)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-21 22:27:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        (setq ido-use-faces nil)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (use-package ido-vertical-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (ido-vertical-mode 1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (setq ido-vertical-define-keys 'C-n-C-p-up-and-down)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (use-package flx-ido)))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  icomplete 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+begin_src emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package icomplete
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (fido-mode +1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (fido-vertical-mode)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+end_src
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  avy 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package avy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (emit-prefix-selector imalison:avy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      avy-goto-word-1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      avy-goto-char))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind (("C-j" . imalison:avy)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("M-g l" . avy-goto-line)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("C-'" . avy-goto-char-2)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  ace-window 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package ace-window
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (emit-prefix-selector imalison:ace-window
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ace-select-window
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ace-swap-window)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config (setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind ("C-c w" . imalison:ace-window))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  neotree 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Neotree is useless with frame mode for now, so I've disabled it.
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package neotree
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  flimenu 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package flimenu
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (flimenu-global-mode)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  swiper 
						 
					
						
							
								
									
										
										
										
											2016-08-25 17:30:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package swiper
							 
						 
					
						
							
								
									
										
										
										
											2016-09-15 17:42:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2016-08-25 17:30:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :bind ("C-s" . swiper))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  Completion  
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  vertico 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+begin_src emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package vertico
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 19:32:39 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defmacro imalison:use-vertico-extension (extension-name &rest forms)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (let ((extension-symbol (intern (concat "vertico-" (symbol-name extension-name)))))
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 19:45:01 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        `(use-package ,extension-symbol
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 19:32:39 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								           :after vertico
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           :straight (,extension-symbol
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      :repo "emacs-straight/vertico"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      :host github
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      :files ,(list (concat "extensions/" (symbol-name extension-symbol) ".el")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           ,@forms)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (put 'imalison:use-vertico-extension 'lisp-indent-function 'defun)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (imalison:use-vertico-extension directory
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 19:07:14 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      :bind (:map vertico-map
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ("RET" . vertico-directory-enter)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ("DEL" . vertico-directory-delete-char)
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 19:45:01 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                  ("M-DEL" . vertico-directory-delete-word)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ("TAB" . embark-act)))
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 19:32:39 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (imalison:use-vertico-extension grid)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (imalison:use-vertico-extension buffer)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (imalison:use-vertico-extension flat)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (imalison:use-vertico-extension multiform
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (vertico-multiform-mode +1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (setq vertico-multiform-commands
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              '((consult-imenu grid)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                (consult-ripgrep buffer)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (vertico-mode +1)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+end_src
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  orderless 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+begin_src emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package orderless
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (defun basic-remote-try-completion (string table pred point)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (and (vertico--remote-p string)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         (completion-basic-try-completion string table pred point)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (defun basic-remote-all-completions (string table pred point)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (and (vertico--remote-p string)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         (completion-basic-all-completions string table pred point)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   (setq completion-styles '(orderless basic)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         completion-category-overrides '((file (styles basic partial-completion)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+end_src
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  marginalia 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+begin_src emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package marginalia
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config (marginalia-mode +1))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+end_src
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  embark 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+begin_src emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package embark
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (("C-." . embark-act)         ;; pick some comfortable binding
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   ("C-;" . embark-dwim)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   ("C-h B" . embark-bindings)) ;; alternative for `describe-bindings'
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :init
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ;; Optionally replace the key help with a completing-read interface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (setq prefix-help-command #'embark-prefix-help-command)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (setq embark-prompter #'embark-completing-read-prompter)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ;; Show the Embark target at point via Eldoc.  You may adjust the Eldoc
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ;; strategy, if you want to see the documentation from multiple providers.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (add-hook 'eldoc-documentation-functions #'embark-eldoc-first-target)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ;; (setq eldoc-documentation-strategy #'eldoc-documentation-compose-eagerly)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq embark-mixed-indicator-delay 1.0)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defmacro imalison:embark-projectile-act-for-file (file &rest forms)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      `(let ((default-directory (projectile-project-root ,file)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (imalison:projectile-do-in-project default-directory ,@forms)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defmacro imalison:build-embark-projectile-for-file (command)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      `(defun ,(intern (concat "imalison:embark-projectile-file-" (symbol-name command))) (filepath)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         (imalison:embark-projectile-act-for-file filepath (,command))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (imalison:build-embark-projectile-for-file term-projectile-switch)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (imalison:build-embark-projectile-for-file magit-status)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (imalison:build-embark-projectile-for-file consult-ripgrep)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq embark-prompter #'embark-keymap-prompter)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (define-key embark-general-map (kbd "t")
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 19:54:01 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                #'imalison:embark-projectile-file-term-projectile-switch)
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (define-key embark-general-map (kbd "m")
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 19:54:01 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                #'imalison:embark-projectile-file-magit-status)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (define-key embark-general-map (kbd "g")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                #'imalison:embark-projectile-file-magit-status)
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (define-key embark-general-map (kbd "s")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      #'imalison:embark-projectile-file-consult-ripgrep)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defvar-keymap imalison:projectile-embark-map
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      :doc "Keymap for actions on projectile projects"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      "m" #'imalison:embark-projectile-file-magit-status
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      "t" #'imalison:embark-projectile-file-term-projectile-switch
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      "s" #'imalison:embark-projectile-file-consult-ripgrep)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package embark-consult
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :hook
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (embark-collect-mode . consult-preview-at-point-mode))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+end_src
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+RESULTS :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								| embark-consult--upgrade-markers | consult-preview-at-point-mode |  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  consult 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+begin_src emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package consult
							 
						 
					
						
							
								
									
										
										
										
											2023-07-28 16:51:53 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :commands consult-ripgrep
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 19:32:39 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :bind (("C-x b" . consult-buffer)
							 
						 
					
						
							
								
									
										
										
										
											2023-07-28 16:51:53 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								         ("C-x C-i" . consult-imenu))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq consult-project-function 'projectile-project-root)))
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+end_src
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  company 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package company
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands company-mode imalison:company
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind (("C-\\" . imalison:company))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (emit-prefix-selector imalison:company
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      company-complete
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      company-yasnippet)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq company-idle-delay .25)
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (use-package company-prescient
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      :demand t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      :config (company-prescient-mode +1))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (global-company-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (diminish 'company-mode))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :init
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (add-hook 'prog-mode-hook (lambda () (company-mode t))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  company-flx 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package company-flx
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :after company
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (company-flx-mode +1))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  auto-complete 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								I don't use auto-complete at all, so I have set up a hook to automatically disable it whenever it is enabled to avoid creating conflicting popups when company is activated.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package auto-complete
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer t
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:auto-complete-hook ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (debug)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (warn "auto-complete-mode was activated, but is being automatically disabled.")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (let ((auto-complete-mode-hook nil))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (auto-complete-mode -1))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'auto-complete-mode-hook 'imalison:auto-complete-hook)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  Text Manipulation  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  smartparens 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package smartparens
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :diminish smartparens-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind (:map smartparens-mode-map
							 
						 
					
						
							
								
									
										
										
										
											2016-11-02 18:06:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								              ("H-z" . sp-kill-symbol)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								              ("C-)" . sp-forward-slurp-sexp)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ("C-}" . sp-forward-barf-sexp)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ("C-(" . sp-backward-slurp-sexp)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ("C-{" . sp-backward-barf-sexp))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (require 'smartparens-config)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (smartparens-global-mode 1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (sp-use-smartparens-bindings)
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 02:08:34 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (sp-local-pair 'org-mode "~" "~ ")
							 
						 
					
						
							
								
									
										
										
										
											2016-10-06 17:40:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (unbind-key "C-M-<backspace >" smartparens-mode-map)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (unbind-key "C-<backspace >" smartparens-mode-map)
							 
						 
					
						
							
								
									
										
										
										
											2021-08-03 14:02:56 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (unbind-key "M-<backspace >" smartparens-mode-map)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (unbind-key "M-<delete >" smartparens-mode-map)))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  multiple-cursors 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package multiple-cursors
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (use-package phi-search-mc
							 
						 
					
						
							
								
									
										
										
										
											2016-09-09 17:51:16 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      :demand t
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (phi-search-mc/setup-keys))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (use-package mc-extras
							 
						 
					
						
							
								
									
										
										
										
											2016-09-09 17:51:16 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      :demand t
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      :config
							 
						 
					
						
							
								
									
										
										
										
											2017-08-27 12:34:40 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (define-key mc/keymap (kbd "C-. =") 'mc/compare-chars))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defhydra imalison:multiple-cursors-hydra (:hint nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      "multiple-cursors"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("l" mc/edit-lines "Edit lines" :exit t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("a" mc/mark-all-like-this "Mark all" :exit t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("n" mc/mark-next-like-this "Mark next")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("N" mc/skip-to-next-like-this "Skip to next")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("M-n" mc/unmark-next-like-this "Unmark next")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("p" mc/mark-previous-like-this "Mark previous")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("P" mc/skip-to-previous-like-this "Skip to previous")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("M-p" mc/unmark-previous-like-this "Unmark previous")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("r" mc/mark-all-in-region-regexp "Mark by regex in region":exit t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("q" nil "Quit")))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :bind
							 
						 
					
						
							
								
									
										
										
										
											2017-08-27 12:34:40 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (("C-c m" . imalison:multiple-cursors-hydra/body)
							 
						 
					
						
							
								
									
										
										
										
											2017-07-28 14:32:46 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								   :map mc/keymap
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   ("C-s" . phi-search)))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  expand-region 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package expand-region
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands er/expand-region
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config (setq expand-region-contract-fast-key "j")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind (("C-c k" . er/expand-region)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  multi-line 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package multi-line
							 
						 
					
						
							
								
									
										
										
										
											2017-08-21 19:18:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  ;; Demand multi-line to avoid failure to load mode specific strategies
							 
						 
					
						
							
								
									
										
										
										
											2016-11-27 02:35:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
									
										
										
										
											2016-11-18 18:45:19 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :bind ("C-c d" . multi-line)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2017-09-08 13:22:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (multi-line-defhook java
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (make-instance
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       'multi-line-strategy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       :respace (multi-line-respacers-with-single-line
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                 (list (multi-line-clearing-reindenting-respacer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        multi-line-skip-first-and-last-respacer)))))
							 
						 
					
						
							
								
									
										
										
										
											2016-11-18 18:45:19 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ;; This only works for array respacing
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (multi-line-defhook sh
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (make-instance
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       'multi-line-strategy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       :find multi-line-lisp-find-strategy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       :respace (multi-line-default-respacers
							 
						 
					
						
							
								
									
										
										
										
											2017-08-21 19:18:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                 (multi-line-clearing-reindenting-respacer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  multi-line-always-newline-respacer)
							 
						 
					
						
							
								
									
										
										
										
											2016-11-18 18:45:19 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                 (multi-line-clearing-reindenting-respacer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  multi-line-force-first-and-last-respacer))))))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  comment-dwim-2 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package comment-dwim-2
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind ("M-;" . comment-dwim-2))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  unfill 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package unfill
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind ("M-q" . unfill-toggle))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2019-05-25 21:22:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  format-all 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+begin_src emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package format-all
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands format-all-buffer)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+end_src
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  cliphist 
						 
					
						
							
								
									
										
										
										
											2016-09-20 03:57:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package cliphist
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2016-09-20 03:57:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config (setq cliphist-use-ivy t))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  electric-operator-mode 
						 
					
						
							
								
									
										
										
										
											2016-09-20 02:20:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package electric-operator
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :commands electric-operator-mode
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 23:39:03 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :init
							 
						 
					
						
							
								
									
										
										
										
											2016-09-20 02:20:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (add-hook 'python-mode-hook #'electric-operator-mode))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  string-inflection 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package string-inflection
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 23:39:23 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :commands string-inflection-all-cycle
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind ("C-c l" . string-inflection-all-cycle))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  yasnippet 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package yasnippet
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :defer 5
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands (yas-global-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (yas-global-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (diminish 'yas-minor-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'term-mode-hook (lambda() (yas-minor-mode -1)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq yas-prompt-functions
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (cons 'yas-ido-prompt
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                (cl-delete 'yas-ido-prompt yas-prompt-functions)))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-09 13:01:52 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2017-07-25 11:40:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  align 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package align
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind ("C-c C-a" . imalison:align-regexp-hydra/body)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2017-08-25 15:14:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (require 'hydra)
							 
						 
					
						
							
								
									
										
										
										
											2017-07-25 11:40:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defun imalison:complex-align-regexp ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (let ((current-prefix-arg t))
							 
						 
					
						
							
								
									
										
										
										
											2017-07-31 14:18:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        (call-interactively 'align-regexp)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:align-whitespace ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (align-regexp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (region-beginning) (region-end)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       "\\(\\s-+\\)") 0 1 t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:align-to-character (character)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (interactive
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (list (read-string "Character to align to " "=")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (align-regexp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (region-beginning) (region-end)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (format "\\(\\s-*\\)%s" character) 1 1 nil))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defhydra imalison:align-regexp-hydra ()
							 
						 
					
						
							
								
									
										
										
										
											2017-07-25 11:40:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      "align-regexp"
							 
						 
					
						
							
								
									
										
										
										
											2017-07-31 14:18:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      ("r" imalison:complex-align-regexp)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("SPC" imalison:align-whitespace)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("c" imalison:align-to-character))))
							 
						 
					
						
							
								
									
										
										
										
											2017-07-25 11:40:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-11-13 09:49:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  flycheck  
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2020-11-29 17:37:34 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (use-package flycheck
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									:commands flycheck-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									:init (add-hook 'prog-mode-hook 'flycheck-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									:config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									(progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  (use-package flycheck-package
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										:disabled t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										:config (flycheck-package-setup))
							 
						 
					
						
							
								
									
										
										
										
											2016-09-03 16:48:16 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-11-29 17:37:34 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									  (use-package flycheck-cask
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										:after flycheck
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										:config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										(add-hook 'flycheck-mode-hook #'flycheck-cask-setup))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-11-29 17:37:34 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									  (add-to-list 'flycheck-emacs-lisp-checkdoc-variables
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												   'sentence-end-double-space)
							 
						 
					
						
							
								
									
										
										
										
											2022-10-07 18:49:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									  (setq-default flycheck-disabled-checkers '(rust-cargo rust rust-clippy))
							 
						 
					
						
							
								
									
										
										
										
											2020-11-29 17:37:34 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									  (setq flycheck-display-errors-delay 10000)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  (global-flycheck-mode))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									:diminish flycheck-mode)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 12:19:33 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2018-04-08 02:20:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  straight  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package straight
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (setq straight-vc-git-auto-fast-forward t))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2019-06-26 16:48:26 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  auth-source  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+begin_src emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package auth-source
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :straight nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq auth-sources '("~/.authinfo.gpg"))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+end_src
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  Major Modes  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  Programming 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:04:28 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								<<programminglanguages >>
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  python 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2019-01-11 13:40:03 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar imalison:use-lsp-python t)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package python
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands python-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode ("\\.py\\'" . python-mode)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-21 22:29:39 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
									
										
										
										
											2019-01-11 13:40:03 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									(defun imalison:jedi-setup ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  ;; TODO: This was likely fixed and can probably be removed
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  ;; Somehow this is sometimes set to jedi:ac-setup which we
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  ;; don't want. This binding avoids starting auto-complete mode.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  (let ((jedi:setup-function nil))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										(jedi:setup))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  ;; XXX: This has become pretty annoying
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  ;; (add-hook 'before-save-hook 'pyimport-remove-unused t t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  ;; Only use company-jedi for completion
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  (set (make-local-variable 'company-backends) '(company-jedi)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									(defun imalison:python-mode ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  (setq show-trailing-whitespace t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  ;; Remove default python completion, as we are going to rely on
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  ;; company-jedi or company-lsp.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  ;; (remove-hook 'completion-at-point-functions
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  ;;              'python-completion-complete-at-point 'local)
							 
						 
					
						
							
								
									
										
										
										
											2023-03-20 23:36:24 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									  (if imalison:use-lsp-python
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (lsp-deferred)
							 
						 
					
						
							
								
									
										
										
										
											2019-01-11 13:40:03 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										(imalison:jedi-setup))))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2023-04-16 01:02:02 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (use-package lsp-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (require 'lsp-pylsp)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (setq lsp-pylsp-plugins-pydocstyle-enabled nil)))
							 
						 
					
						
							
								
									
										
										
										
											2019-01-11 13:40:03 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									(use-package sphinx-doc)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									(unbind-key "C-j" python-mode-map)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									(add-hook 'python-mode-hook #'imalison:python-mode)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 12:29:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2017-03-25 07:01:25 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  pippel 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								pippel lets one manage pip packages
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package pippel
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :defer t)
							 
						 
					
						
							
								
									
										
										
										
											2017-03-25 07:01:25 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  pyimport 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Pyimport is disabled because it may be causing a performance problem.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package pyimport
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind (:map python-mode-map
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ("C-c C-i" . pyimport-insert-missing))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands pyimport-remove-unused)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  jedi 
						 
					
						
							
								
									
										
										
										
											2016-08-21 22:29:39 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The accepted way to use jedi if you prefer company to auto-complete is
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								simply to require the company jedi package, which is why we make no
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								reference to the jedi-core package.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package company-jedi
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands (jedi:goto-definition jedi-mode company-jedi)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind (:map python-mode-map
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ("M-." . jedi:goto-definition)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ("M-," . jedi:goto-definition-pop-marker))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq jedi:complete-on-dot t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq jedi:imenu-create-index-function 'jedi:create-flat-imenu-index)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  go 
						 
					
						
							
								
									
										
										
										
											2016-06-13 12:29:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package go-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode (("\\.go\\'" . go-mode))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defun imalison:glide-novendor ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (projectile-with-default-dir (projectile-project-root)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (shell-command-to-string "glide novendor")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:go-mode-create-imenu-index ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      "Create and return an imenu index alist. Unlike the default
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  alist created by go-mode, this method creates an alist where
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  items follow a style that is consistent with other prog-modes."
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (let* ((patterns '(("type" "^type *\\([^ \t\n\r\f]* \\)" 1)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             (type-index (imenu--generic-function patterns))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             (func-index))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (save-excursion
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (goto-char (point-min))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (while (re-search-forward go-func-meth-regexp (point-max) t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (let* ((var (match-string-no-properties 1))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                   (func (match-string-no-properties 2))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                   (name (if var
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                             (concat (substring var 0 -1) "." func)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           func))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                   (beg (match-beginning 0))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                   (marker (copy-marker beg))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                   (item (cons name marker)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (setq func-index (cons item func-index)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (nconc type-index (list (cons "func" func-index)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:go-workspace-path ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (file-relative-name (projectile-project-root)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          (concat (file-name-as-directory
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                   (imalison:get-go-path)) "src")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:install-current-go-project ()
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (interactive)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (start-process
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       "go install" "go install log" "go" "install"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (concat (file-name-as-directory (imalison:go-workspace-path)) "...")))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defun imalison:get-go-path ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (let ((environment-go-path (getenv "GOPATH")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (if environment-go-path
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (file-name-as-directory (car (s-split ":" environment-go-path)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          "~/go")))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 14:34:29 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defmacro imalison:get-go-src (&rest paths)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      `(imalison:join-paths (imalison:get-go-path) "src" ,@paths))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (imalison:let-advise-around imalison:advise-normal-go-command
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                (go-command "go"))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 18:33:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defun imalison:go-mode-hook ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (go-eldoc-setup)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (set (make-local-variable 'company-backends) '(company-go))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (make-local-variable 'projectile-globally-ignored-files)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (add-hook 'after-save-hook 'imalison:install-current-go-project nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                'yes-do-local)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (add-to-list 'projectile-globally-ignored-files
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                   "vendor")))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (use-package gotest
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								     :demand t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     :bind (:map go-mode-map
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                 ("C-c t" . imalison:gotest))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (emit-prefix-selector imalison:gotest
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         go-test-current-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         go-test-current-file)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								       (defun imalison:add-expected-test-name-for-suite (suite-name test-name)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         (if (> (length suite-name) 0)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             (concat " -run Test" suite-name)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           "")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (setq go-test-verbose t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             go-test-additional-arguments-function
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             'imalison:add-expected-test-name-for-suite)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (use-package company-go
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      :config (setq company-go-show-annotation t))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (use-package go-projectile :demand t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (use-package go-eldoc :demand t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (use-package go-guru
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      :demand t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      :bind (:map go-mode-map
							 
						 
					
						
							
								
									
										
										
										
											2023-06-21 17:52:19 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                  ("M-." . go-guru-definition))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (defun imalison:set-go-guru-scope ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (setq go-guru-scope (go-mode-parse-glide-novendor)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (defun go-mode-parse-glide-novendor ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (s-join ","
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  (cl-loop for path in (s-split "\n" (imalison:glide-novendor))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           collect (if (string-equal path ".")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                       (imalison:go-workspace-path)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     (s-replace "\./" (imalison:go-workspace-path) path))))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (advice-add 'go-guru--set-scope-if-empty :before 'imalison:set-go-guru-scope)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (advice-add 'go-guru-start :before 'imalison:set-go-guru-scope)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (advice-add 'go-guru-definition :around 'imalison:advise-normal-go-command)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (advice-add 'go-guru-definition :before
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    (lambda ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      (with-no-warnings
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        (ring-insert find-tag-marker-ring (point-marker)))))))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 13:42:39 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (advice-add 'go-import-add :around 'imalison:advise-normal-go-command)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq gofmt-command "goimports")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'go-mode-hook 'imalison:go-mode-hook)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'before-save-hook 'gofmt-before-save t)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  Show diffs of testify output 
						 
					
						
							
								
									
										
										
										
											2016-06-28 17:14:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar imalison:testify-ediff-buffers nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:purge-ediff-buffers (&rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (cl-loop for buffer in imalison:testify-ediff-buffers
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           do (kill-buffer buffer))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (setq imalison:testify-ediff-buffers nil))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(add-hook 'ediff-cleanup-hook 'imalison:purge-ediff-buffers)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:go-testify-show-ediff ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let ((buffer (get-buffer-create "*Testify JSON* "))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        json-result)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (shell-command-on-region (point-min) (point-max) "parse_go_testify_for_emacs.py" buffer)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (with-current-buffer buffer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (goto-char (point-min))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (setq json-result (json-read)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (let ((actual-buffer (generate-new-buffer "*Testify Actual* "))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (expected-buffer (generate-new-buffer "*Testify Expected* ")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (add-to-list 'imalison:testify-ediff-buffers actual-buffer)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (add-to-list 'imalison:testify-ediff-buffers expected-buffer)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (with-current-buffer actual-buffer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (insert (cdr (assoc 'actual json-result)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (with-current-buffer expected-buffer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (insert (cdr (assoc 'expected json-result)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (ediff-buffers actual-buffer expected-buffer))))))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:go-testify-show-icdiff ()
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (let ((buffer (get-buffer-create "*Testify Comparison* ")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (shell-command-on-region (point-min) (point-max) "parse_go_testify_not_equal.py" buffer)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (with-current-buffer buffer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (fundamental-ansi-mode))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (switch-to-buffer buffer)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-28 17:14:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  emacs-lisp 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								****  elisp-slime-nav 
						 
					
						
							
								
									
										
										
										
											2016-08-15 14:32:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package elisp-slime-nav
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands elisp-slime-nav-mode
							 
						 
					
						
							
								
									
										
										
										
											2016-08-15 14:32:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (diminish 'elisp-slime-nav-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (emit-prefix-selector imalison:elisp-slime-nav
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    elisp-slime-nav-find-elisp-thing-at-point
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    elisp-slime-nav-describe-elisp-thing-at-point)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind (:map elisp-slime-nav-mode-map
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ("M-." . imalison:elisp-slime-nav)))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-15 14:32:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2017-07-25 11:39:46 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  Make find-function use display-buffer 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								For some reason ~find-function~  doesn't allow to ~display-buffer~  to do what
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								it's supposed to do, but instead uses its own collection of functions to control
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								where the definition is popped up. This fixes that.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package find-func
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:find-function-display-buffer (function)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (interactive (find-function-read))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (find-function-do-it function nil 'display-buffer)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (advice-add 'find-function :override 'imalison:find-function-display-buffer))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:find-function-display-buffer (function)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive (find-function-read))
							 
						 
					
						
							
								
									
										
										
										
											2017-07-26 17:27:18 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (find-function-do-it function nil 'pop-to-buffer))
							 
						 
					
						
							
								
									
										
										
										
											2017-07-25 11:39:46 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  macrostep 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Macrostep is an indespensible tool for writing emacs lisp macros. It lets you see pretty printed versions of the result of macro evaluation as the macro is evaluated
							 
						 
					
						
							
								
									
										
										
										
											2016-08-15 14:32:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package macrostep
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind (:map lisp-mode-shared-map
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ("C-c e" . macrostep-expand)))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-15 14:32:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  emr 
						 
					
						
							
								
									
										
										
										
											2016-08-15 14:32:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package emr
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind ("M-RET" . emr-show-refactor-menu)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-15 14:32:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-hook 'prog-mode-hook 'emr-initialize)))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-15 14:32:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  Editing configuration 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Reduce indentation for some functions
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 12:29:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(put 'use-package 'lisp-indent-function 1)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 12:29:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  Checkdoc 
						 
					
						
							
								
									
										
										
										
											2016-08-24 01:36:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(setq checkdoc-force-docstrings-flag nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      checkdoc-arguments-in-order-flag nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  edebug 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:34:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package edebug
							 
						 
					
						
							
								
									
										
										
										
											2017-08-25 15:14:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer t
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (progn (setq edebug-trace t)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:34:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-27 03:02:42 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  overseer 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-24 12:07:27 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package overseer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :defer t)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-27 03:02:42 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  Misc 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:34:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imenu-elisp-sections ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (setq imenu-prev-index-position-function nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (setq imenu-space-replacement nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (add-to-list 'imenu-generic-expression
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               `("Package"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                 ,"(use-package \\(.+\\)$" 1))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (add-to-list 'imenu-generic-expression
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               `("Section"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                 ,(concat ";\\{1,4\\} =\\{10,80\\}\n;\\{1,4\\} \\{10,80\\}"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          "\\(.+\\)$") 1) t))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:maybe-remove-flycheck-checkdoc-checker ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (when (s-starts-with? "*" (buffer-name))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (flycheck-disable-checker 'emacs-lisp-checkdoc)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(add-hook 'emacs-lisp-mode-hook 'imenu-elisp-sections)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(add-hook 'emacs-lisp-mode-hook (lambda ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                  (setq indent-tabs-mode nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                  (setq show-trailing-whitespace t)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(add-hook 'flycheck-mode-hook 'imalison:maybe-remove-flycheck-checkdoc-checker)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:34:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-12-26 01:11:12 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  eros 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package eros
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands (eros-mode)
							 
						 
					
						
							
								
									
										
										
										
											2016-12-30 12:50:24 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (advice-add 'eval-defun :around 'eros-around-eval-defun)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (advice-add 'eval-last-sexp :around 'eros-around-eval-last-sexp))
							 
						 
					
						
							
								
									
										
										
										
											2016-12-26 01:11:12 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-12-31 14:19:06 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defvar eros-mode nil)
							 
						 
					
						
							
								
									
										
										
										
											2017-01-12 15:29:10 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 17:01:13 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defun eros-around-eval-last-sexp (fn &rest args)
							 
						 
					
						
							
								
									
										
										
										
											2016-12-31 14:19:06 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (let ((result (apply fn args)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (when eros-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (eros--eval-overlay result (point)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        result))
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 17:01:13 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun eros-around-eval-defun (fn &rest args)
							 
						 
					
						
							
								
									
										
										
										
											2016-12-31 14:19:06 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (let ((result (apply fn args)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (when eros-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (eros--eval-overlay
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           result
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           (save-excursion
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             (end-of-defun)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             (point))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        result))
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 17:01:13 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-12-26 01:11:12 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-hook 'emacs-lisp-mode-hook 'eros-mode)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:34:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-11-02 18:05:02 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  Reevalute defvars when running eval-last-sexp 
						 
					
						
							
								
									
										
										
										
											2016-11-02 18:23:03 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								We noflet elisp--preceding-sexp to munge defvars into sexps only for
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								eval-last-sexp.
							 
						 
					
						
							
								
									
										
										
										
											2016-11-02 18:05:02 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:maybe-setq-instead (fn &rest args)
							 
						 
					
						
							
								
									
										
										
										
											2016-11-02 18:23:03 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (noflet ((elisp--preceding-sexp (&rest preceding-args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                  (let* ((preceding-sexp (apply this-fn preceding-args)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                    (if (and (listp preceding-sexp) (equal (car preceding-sexp) 'defvar))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        `(setq ,@(cdr preceding-sexp))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                      preceding-sexp))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (apply fn args)))
							 
						 
					
						
							
								
									
										
										
										
											2016-11-02 18:05:02 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(advice-add 'eval-last-sexp :around 'imalison:maybe-setq-instead)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  Init hook 
						 
					
						
							
								
									
										
										
										
											2016-09-03 16:42:44 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defvar imalison:check-parens nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:maybe-check-parens ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (if imalison:check-parens
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (check-parens)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:emacs-lisp-hook ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (elisp-slime-nav-mode t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (add-hook 'write-file-functions 'imalison:maybe-check-parens nil t))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(add-hook 'emacs-lisp-mode-hook 'imalison:emacs-lisp-hook)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  Keybinds 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:34:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(emit-compose imalison:copy-eval-last-sexp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              kill-new prin1-to-string eval-last-sexp)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(emit-prefix-selector imalison:eval-last-sexp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      eval-region-or-last-sexp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      imalison:copy-eval-last-sexp)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(define-key lisp-mode-shared-map (kbd "C-c C-c") 'eval-defun)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(define-key lisp-mode-shared-map (kbd "C-c o r") 'up-list-region)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(define-key lisp-mode-shared-map (kbd "C-c o o") 'up-list-back)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(define-key lisp-mode-shared-map (kbd "C-x C-e") 'imalison:eval-last-sexp)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(unbind-key "C-j" lisp-interaction-mode-map)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:34:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2018-05-29 21:00:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  nix 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2018-05-29 23:00:26 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package nix-mode
							 
						 
					
						
							
								
									
										
										
										
											2018-07-14 12:51:39 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (imalison:add-blacklist-to-major nix-mode)
							 
						 
					
						
							
								
									
										
										
										
											2019-06-06 00:30:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq nix-mode-blacklist '("all-packages.nix" "hackage-packages.nix")))
							 
						 
					
						
							
								
									
										
										
										
											2018-05-29 23:00:26 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq nix-indent-function 'nix-indent-line)))
							 
						 
					
						
							
								
									
										
										
										
											2018-05-29 21:00:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2018-06-17 03:02:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package nix-update
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :after nix)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  clojure 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The following is taken from [[https://github.com/syl20bnr/spacemacs/blob/a650877bea582fed72bbca0dc1f80fcb2ec0e6d5/layers/+lang/clojure/funcs.el#L30 ][spacemacs ]]. It adds fancification to a clojure mode.
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 19:15:18 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:clojure-fancify-symbols (mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  "Pretty symbols for Clojure's anonymous functions and sets,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   like (λ [a] (+ a 5)), ƒ(+  % 5), and ∈{2 4 6}."
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (font-lock-add-keywords mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    `(("(\\(fn\\)[\n\[[:space: ]]"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (0 (progn (compose-region (match-beginning 1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                 (match-end 1) "λ"))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("(\\(partial\\)[\[[:space: ]]"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (0 (progn (compose-region (match-beginning 1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                 (match-end 1) "Ƥ"))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("(\\(comp\\)[\n\[[:space: ]]"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (0 (progn (compose-region (match-beginning 1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                 (match-end 1) "∘"))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("\\(#\\)("
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (0 (progn (compose-region (match-beginning 1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                 (match-end 1) "ƒ"))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("\\(#\\){"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (0 (progn (compose-region (match-beginning 1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                 (match-end 1) "∈")))))))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 19:15:18 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:34:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-12-14 13:57:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (use-package clojure-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									:commands clojure-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									:preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									(progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  (add-to-list 'magic-mode-alist '("#!.*boot\\s-* $" . clojure-mode))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  (add-to-list 'auto-mode-alist '("\\.boot\\'" . clojure-mode))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  (defun imalison:clojure-mode-hook ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										;; (cljr-add-keybindings-with-prefix "C-c C-m")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										;; This is disabled because seq-25 can't be loaded
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										;; (clj-refactor-mode 1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										;;for adding require/use/import statements
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										(yas-minor-mode 1))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  (defvar imalison:clojure-level-1-symobls
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										'(describe it)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									:config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									(progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  (cl-loop for symbol in imalison:clojure-level-1-symobls
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											   do (put-clojure-indent symbol 1))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  (add-hook 'clojure-mode-hook 'imalison:clojure-mode-hook)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									  (dolist (m '(clojure-mode clojurescript-mode clojurec-mode clojurex-mode))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										(imalison:clojure-fancify-symbols m))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:34:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  cider 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:34:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package cider
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands (cider-jack-in)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq cider-stacktrace-default-filters '(tooling dup)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          cider-repl-pop-to-buffer-on-connect nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          cider-prompt-save-file-on-load nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          cider-repl-use-clojure-font-lock t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          cider-prompt-for-symbol nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          cider-preferred-build-tool "boot")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'clojure-mode-hook 'cider-mode)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:34:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  clj-refactor 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package clj-refactor
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands clj-refactor-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  scala 
						 
					
						
							
								
									
										
										
										
											2016-06-13 12:29:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package scala-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode (("\\.scala\\'" . scala-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("\\.sc\\'" . scala-mode))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (use-package ensime
							 
						 
					
						
							
								
									
										
										
										
											2016-12-12 23:10:35 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      :demand t
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      :bind (:map ensime-mode-map
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ("M-," . ensime-pop-find-definition-stack))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      :commands ensime-mode
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      :config
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (progn
							 
						 
					
						
							
								
									
										
										
										
											2019-01-11 13:40:54 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        (setq ensime-startup-snapshot-notification nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ensime-startup-notification nil)))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-hook 'scala-mode-hook 'ensime-scala-mode-hook)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq scala-indent:align-parameters t)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 12:29:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2017-07-29 00:32:45 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  javascript 
						 
					
						
							
								
									
										
										
										
											2016-06-19 02:05:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun tape-onlyify ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (save-excursion
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (move-end-of-line nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (re-search-backward "^test")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (forward-sexp)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (if (looking-at ".only") (progn (zap-to-char 1 (string-to-char "(")) (insert "("))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (insert ".only"))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package js2-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands (js2-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode "\\.js\\'"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defvar-setq imalison:identifier-count 0)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:console-log-unique ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (let* ((identifier-string (int-to-string imalison:identifier-count))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             (uuid (imalison:uuid)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (insert (format "console.log('%s//////////%s/ /////////');" identifier-string uuid))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (setq imalison:identifier-count (+ imalison:identifier-count 1))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:js2-mode-hook ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ;; Sensible defaults
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (setq js2-bounce-indent-p nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            js2-indent-level 4
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            js2-basic-offset 4
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            js2-highlight-level 3
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            js2-include-node-externs t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            js2-mode-show-parse-errors nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            js2-mode-show-strict-warnings nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            indent-tabs-mode nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            js2-indent-switch-body t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ;; (edconf-find-file-hook) ;; Make sure that editorconfig takes precedence
							 
						 
					
						
							
								
									
										
										
										
											2019-01-11 13:40:54 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      ;; (tern-mode t)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (when nil (skewer-mode)) ;; TODO: reenable
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (setq imenu-create-index-function
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (lambda ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (imalison:flatten-imenu-index
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               (js2-mode-create-imenu-index))))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :init
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'js2-mode-hook 'imalison:js2-mode-hook)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'js2-mode-hook 'js2-imenu-extras-mode)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package js2-refactor
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :after js2-mode
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (js2r-add-keybindings-with-prefix "C-c C-m")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'js2-mode-hook #'js2-refactor-mode)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package skewer-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands skewer-mode
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-hook 'css-mode-hook #'skewer-css-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'html-mode-hook #'skewer-html-mode)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package tern
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands tern-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (use-package company-tern
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    :config (add-to-list 'company-backends 'company-tern)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun delete-tern-process ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (delete-process "tern"))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-20 17:21:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2017-07-25 11:39:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  typescript 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package typescript-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode "\\.ts\\'")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2017-05-09 11:55:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  coffee script 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package coffee-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode "\\.coffee\\'")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  rust 
						 
					
						
							
								
									
										
										
										
											2016-06-20 16:55:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package rust-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode (("\\.rs\\'" . rust-mode))
							 
						 
					
						
							
								
									
										
										
										
											2022-04-19 00:54:24 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  ;; :hook (rust-mode . lsp)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2023-04-16 01:02:23 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defvar imalison:use-lsp-rust t)
							 
						 
					
						
							
								
									
										
										
										
											2023-06-13 22:21:03 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq lsp-rust-analyzer-diagnostics-disabled ["unresolved-proc-macro"])
							 
						 
					
						
							
								
									
										
										
										
											2019-12-10 14:03:12 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defun imalison:rust-mode-hook ()
							 
						 
					
						
							
								
									
										
										
										
											2023-04-16 01:02:23 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (when imalison:use-lsp-rust
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (lsp-deferred))
							 
						 
					
						
							
								
									
										
										
										
											2022-04-19 00:54:24 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (add-to-list 'flycheck-disabled-checkers 'rust-cargo)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (add-to-list 'flycheck-disabled-checkers 'rust)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (add-to-list 'flycheck-disabled-checkers 'rust-clippy)
							 
						 
					
						
							
								
									
										
										
										
											2019-12-10 14:03:12 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (setq rust-format-on-save t)))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2019-06-23 13:56:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (use-package toml-mode)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-hook 'rust-mode-hook 'imalison:rust-mode-hook)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-20 16:55:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  haskell 
						 
					
						
							
								
									
										
										
										
											2016-06-13 16:18:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2019-07-10 13:33:37 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar imalison:use-lsp-haskell nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defvar imalison:dfinity nil)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package haskell-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands haskell-mode
							 
						 
					
						
							
								
									
										
										
										
											2019-07-10 13:33:37 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :bind
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (:map haskell-mode-map
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ("C-c h" . haskell-hoogle))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:haskell-mode ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (turn-on-haskell-indent)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (when imalison:dfinity
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (setq
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         haskell-mode-stylish-haskell-path "brittany"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         haskell-mode-stylish-haskell-args '("-")))
							 
						 
					
						
							
								
									
										
										
										
											2020-11-29 17:37:34 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (message "imalison:use-lsp-haskell: %s" imalison:use-lsp-haskell)
							 
						 
					
						
							
								
									
										
										
										
											2021-08-14 04:11:44 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (when t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (require 'lsp)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (use-package lsp-haskell
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          :demand t)
							 
						 
					
						
							
								
									
										
										
										
											2021-08-02 00:30:53 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        (lsp-deferred)))
							 
						 
					
						
							
								
									
										
										
										
											2020-11-29 17:37:34 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-hook 'haskell-mode-hook 'imalison:haskell-mode))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 14:20:13 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq
							 
						 
					
						
							
								
									
										
										
										
											2019-07-10 13:33:37 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								     haskell-hoogle-command "hoogle"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     haskell-interactive-popup-errors nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     haskell-process-auto-import-loaded-modules nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     haskell-process-show-overlays nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     haskell-stylish-on-save nil
							 
						 
					
						
							
								
									
										
										
										
											2021-08-01 21:15:20 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								     haskell-tags-on-save nil
							 
						 
					
						
							
								
									
										
										
										
											2019-07-10 13:33:37 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								     haskell-indent-offset 2)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									(require 'flycheck)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (cl-loop for checker in '(haskell-stack-ghc haskell-ghc haskell-hlint)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             do (delq checker flycheck-checkers))))
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 11:09:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  intero 
						 
					
						
							
								
									
										
										
										
											2016-10-13 13:29:37 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Intero seems to be causing hangs, so it has been disabled
							 
						 
					
						
							
								
									
										
										
										
											2016-09-16 12:57:27 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package intero
							 
						 
					
						
							
								
									
										
										
										
											2019-05-25 21:19:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2016-09-16 12:57:27 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :after haskell-mode
							 
						 
					
						
							
								
									
										
										
										
											2017-03-25 06:58:27 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun intero--warn (&rest args))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'haskell-mode-hook 'intero-mode-whitelist)))
							 
						 
					
						
							
								
									
										
										
										
											2016-09-16 12:57:27 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  hindent 
						 
					
						
							
								
									
										
										
										
											2016-09-13 02:51:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package hindent
							 
						 
					
						
							
								
									
										
										
										
											2019-05-25 21:19:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2016-09-13 02:51:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :after haskell-mode
							 
						 
					
						
							
								
									
										
										
										
											2016-11-24 19:10:56 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :bind (:map hindent-mode-map
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ("C-c d" . hindent-reformat-decl))
							 
						 
					
						
							
								
									
										
										
										
											2016-09-13 02:51:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 14:20:13 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-11-24 19:01:37 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq hindent-style nil)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 14:20:13 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-hook 'haskell-mode-hook 'hindent-mode)))
							 
						 
					
						
							
								
									
										
										
										
											2016-09-13 02:51:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  ghc-mod 
						 
					
						
							
								
									
										
										
										
											2016-09-13 02:51:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package ghc
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :after haskell-mode
							 
						 
					
						
							
								
									
										
										
										
											2016-11-29 20:20:25 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2016-09-13 02:51:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 14:20:13 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-10-28 14:28:45 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq ghc-debug t)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 14:20:13 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-hook 'haskell-mode-hook 'ghc-init)))
							 
						 
					
						
							
								
									
										
										
										
											2016-09-13 02:51:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  company-ghc 
						 
					
						
							
								
									
										
										
										
											2016-09-13 02:51:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package company-ghc
							 
						 
					
						
							
								
									
										
										
										
											2016-11-29 20:20:25 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 14:20:13 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
									
										
										
										
											2016-09-13 02:51:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
									
										
										
										
											2016-11-07 22:48:50 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (add-to-list 'company-backends '(company-ghc :with company-dabbrev-code)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 16:18:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2017-03-25 06:58:42 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  purescript 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package purescript-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :defer t)
							 
						 
					
						
							
								
									
										
										
										
											2017-03-25 06:58:42 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-11-29 17:37:34 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package purty
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands purty-on-save-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :straight (purty :repo "joneshf/purty"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                   :type git
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                   :host gitlab
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                   :files ("purty.el")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-25 06:58:42 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package psc-ide
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :after purescript-mode
							 
						 
					
						
							
								
									
										
										
										
											2017-03-25 06:58:42 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:purescript-mode-hook ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (psc-ide-mode +1)
							 
						 
					
						
							
								
									
										
										
										
											2020-11-29 17:37:34 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									  (purty-on-save-mode +1)
							 
						 
					
						
							
								
									
										
										
										
											2017-03-25 06:58:42 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (turn-on-purescript-indentation))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'purescript-mode-hook 'imalison:purescript-mode-hook)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2018-05-27 23:43:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  kotlin 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2023-07-28 00:06:28 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package kotlin-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :defer t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode ("\\.kt\\'"))
							 
						 
					
						
							
								
									
										
										
										
											2018-05-27 23:43:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  vala 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2023-07-28 00:06:28 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package vala-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t)
							 
						 
					
						
							
								
									
										
										
										
											2018-05-27 23:43:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2017-09-08 13:22:43 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  lua 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-10-18 09:14:50 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package lua-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :defer t)
							 
						 
					
						
							
								
									
										
										
										
											2017-09-08 13:22:43 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  C/C++ 
						 
					
						
							
								
									
										
										
										
											2016-09-21 17:02:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package cc-mode
							 
						 
					
						
							
								
									
										
										
										
											2016-09-21 17:03:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2016-09-21 17:02:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (defun imalison:cc-mode-hook ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (when (derived-mode-p 'c-mode 'c++-mode 'java-mode 'asm-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (ggtags-mode 1)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (use-package ggtags
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      :demand t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      :bind (:map ggtags-mode-map
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ("C-c g s" . ggtags-find-other-symbol)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ("C-c g h" . ggtags-view-tag-history)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ("C-c g r" . ggtags-find-reference)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ("C-c g f" . ggtags-find-file)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ("C-c g c" . ggtags-create-tags)
							 
						 
					
						
							
								
									
										
										
										
											2023-06-21 17:52:19 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                  ("C-c g u" . ggtags-update-tags)))
							 
						 
					
						
							
								
									
										
										
										
											2016-09-21 17:02:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-hook 'c-mode-common-hook 'imalison:cc-mode-hook)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2017-08-28 23:12:48 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  C-- 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package cmm-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :defer t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 18:23:29 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  C# 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package csharp-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode "\\.cs\\'")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  racket 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package racket-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode "\\.rkt\\'")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2023-03-13 23:01:38 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  ein 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package ein
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode "\\.ipynb\\'")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Data/Config/Protocol 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  thrift 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package thrift
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands thrift-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode (("\\.thrift\\'" . thrift-mode)))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  protobuf 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package protobuf-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :defer t)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  json-mode 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package json-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode "\\.json\\'"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :init
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (add-hook 'json-mode-hook
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (lambda ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (setq indent-tabs-mode nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (setq js-indent-level 4))))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  yaml-mode 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package yaml-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode (("\\.yaml\\'" . yaml-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("\\.yml\\'" . yaml-mode)))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  es-mode 
						 
					
						
							
								
									
										
										
										
											2016-08-18 14:26:34 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package es-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :defer t)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 14:26:34 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2018-04-28 01:58:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  docker 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package dockerfile-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode ("Dockerfile\\'" . dockerfile-mode))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2020-04-18 01:52:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  dhall 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+begin_src emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package dhall-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode "\\.dhall\\'")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+end_src
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Document 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  org 
						 
					
						
							
								
									
										
										
										
											2016-11-07 13:46:39 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  config 
						 
					
						
							
								
									
										
										
										
											2016-12-28 02:08:34 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp :tangle org-config.el
							 
						 
					
						
							
								
									
										
										
										
											2017-09-05 16:12:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar imalison:org-dir "~/org")
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package org
							 
						 
					
						
							
								
									
										
										
										
											2016-11-07 17:42:45 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :bind (:map org-mode-map
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (("C-e" . end-of-visual-line)))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2021-07-12 23:18:11 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (require 'cl-lib)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:maybe-symbol-name (arg)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (if (symbolp arg)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (symbol-name arg)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        arg))
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 20:34:14 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ;; XXX: These should probably be moved to config, right?
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 02:08:34 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq org-startup-indented nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          org-startup-folded t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          org-edit-src-content-indentation 0
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          org-src-preserve-indentation t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          org-directory "~/Dropbox/org"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          org-mobile-inbox-for-pull "~/Dropbox/org/flagged.org"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          org-mobile-directory "~/Dropbox/Apps/MobileOrg")
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq org-goto-interface 'outline-path-completion
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 15:41:42 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          org-goto-max-level 10
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 17:56:44 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          org-export-headline-levels 3)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-hook 'org-mode-hook 'imalison:disable-linum-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'org-mode-hook (lambda () (setq org-todo-key-trigger t)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'org-agenda-mode-hook 'imalison:disable-linum-mode)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-28 20:04:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defun org-archive-if (condition-function)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (if (funcall condition-function)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (let ((next-point-marker
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                 (save-excursion (org-forward-heading-same-level 1) (point-marker))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (org-archive-subtree)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (setq org-map-continue-from (marker-position next-point-marker)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun org-archive-if-completed ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (org-archive-if 'org-entry-is-done-p))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun org-archive-completed-in-buffer ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (org-map-entries 'org-archive-if-completed))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (cl-defun imalison:make-org-template (&key (content "%?"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (with-temp-buffer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (org-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (insert content)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (org-set-property "CREATED"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          (with-temp-buffer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            (org-insert-time-stamp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                             (org-current-effective-time) t t)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (buffer-substring-no-properties (point-min) (point-max))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:make-org-template-from-file (filename)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (imalison:make-org-template (imalison:get-string-from-file filename)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (cl-defun imalison:make-org-todo-template
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (&key (content "%?") (creation-state "TODO"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (with-temp-buffer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (org-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (org-insert-heading)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (insert content)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (org-todo creation-state)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (org-set-property "CREATED"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          (with-temp-buffer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            (org-insert-time-stamp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                             (org-current-effective-time) t t)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (remove-hook 'post-command-hook 'org-add-log-note)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (let ((org-log-note-purpose 'state)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (org-log-note-return-to (point-marker))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (org-log-note-marker (progn (goto-char (org-log-beginning t))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                          (point-marker)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (org-log-note-state creation-state))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (org-add-log-note))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (buffer-substring-no-properties (point-min) (point-max))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun org-todo-force-notes ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (let ((org-todo-log-states
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             (mapcar (lambda (state)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       (list state 'note 'time))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                     (apply 'append org-todo-sets))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (cond ((eq major-mode 'org-mode)  (org-todo))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ((eq major-mode 'org-agenda-mode) (org-agenda-todo)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun org-make-habit ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (org-set-property "STYLE" "habit"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun org-insert-habit ()
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (interactive)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (org-insert-todo-heading nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (org-make-habit))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-02 17:04:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defun org-todo-at-date (date)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (interactive (list (org-time-string-to-time (org-read-date))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (cl-flet ((org-current-effective-time (&rest r) date)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                (org-today (&rest r) (time-to-days date)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (cond ((eq major-mode 'org-mode) (org-todo))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ((eq major-mode 'org-agenda-mode) (org-agenda-todo)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:make-org-linked-todo-template ()
							 
						 
					
						
							
								
									
										
										
										
											2017-08-25 12:50:28 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (imalison:make-org-todo-template "[#C] %? %A"))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun org-cmp-creation-times (a b)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (let ((a-created (get-date-created-from-agenda-entry a))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (b-created (get-date-created-from-agenda-entry b)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (imalison:compare-int-list a-created b-created)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun org-agenda-done (&optional arg)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      "Mark current TODO as done.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  This changes the line at point, all other lines in the agenda referring to
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  the same tree node, and the headline of the tree node in the Org-mode file."
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (interactive "P")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (org-agenda-todo "DONE")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands (org-mode org org-mobile-push org-mobile-pull org-agenda)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode ("\\.org\\'" . org-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind (("C-c a" . org-agenda)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("C-c c" . org-capture)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         :map org-mode-map
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("C-c n t" . org-insert-todo-heading)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("C-c n s" . org-insert-todo-subheading)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("C-c n h" . org-insert-habit)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("C-c n m" . org-make-habit)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("C-c n l" . org-store-link)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("C-c n i" . org-insert-link)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("C-c C-t" . org-todo)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("C-c C-S-t" . org-todo-force-notes)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("M-." . elisp-slime-nav-find-elisp-thing-at-point))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq org-global-properties
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          '(quote (("Effort_ALL" . "0:15 0:30 0:45 1:00 2:00 3:00 4:00 5:00 6:00 0:00")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                   ("STYLE_ALL" . "habit"))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          ;; Record changes to todo states
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq org-todo-keywords
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          '((sequence "IDEA(i!)" "RESEARCH(r!)" "TODO(t!)" "NEXT(n!)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      "STARTED(s!)" "WAIT(w!)" "BACKLOG(b!)" "|"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      "DONE(d!)" "HANDLED(h!)" "EXPIRED(e!)" "CANCELED(c!)")))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq org-todo-repeat-to-state "TODO")
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq org-agenda-span 10)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq org-agenda-start-day "-2d")
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq org-columns-default-format
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          "%80ITEM(Task) %10Effort(Effort){:} %10CLOCKSUM")
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-to-list 'org-show-context-detail '(org-goto . lineage))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-28 20:04:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-to-list
							 
						 
					
						
							
								
									
										
										
										
											2016-10-16 18:53:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								     'org-src-lang-modes '("plantuml" . plantuml))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-28 20:04:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-08-25 12:55:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-hook 'org-mode-hook 'imalison:load-babel-languages)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:load-babel-languages ()
							 
						 
					
						
							
								
									
										
										
										
											2018-06-01 15:49:40 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (let* ((loaded-ob (or (require 'ob-sh nil t) (require 'ob-shell nil t)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             (ob-shell-name
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (when loaded-ob
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                (intern (substring-no-properties (imalison:maybe-symbol-name loaded-ob) 3))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             (added-modes (when ob-shell-name `((,ob-shell-name . t)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (org-babel-do-load-languages
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         'org-babel-load-languages
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         `((python . t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           (ruby . t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           (octave . t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           (plantuml . t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           ,@added-modes))))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq org-log-into-drawer t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          org-log-reschedule t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          org-log-redeadline t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          org-treat-insert-todo-heading-as-state-change t)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (when nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ;; Enable appointment notifications.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (defadvice org-agenda-to-appt (before wickedcool activate)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        "Clear the appt-time-msg-list."
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (setq appt-time-msg-list nil))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (appt-activate)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (defun org-agenda-to-appt-no-message ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (shut-up (org-agenda-to-appt)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (run-at-time "00:00" 60 'org-agenda-to-appt-no-message))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; Override the key definition for org-exit
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; TODO why does this cause an error
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; (define-key org-agenda-mode-map "x" #'org-agenda-done)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; org-mode add-ons
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (use-package org-present
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      :commands org-present)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (use-package org-pomodoro
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      :disabled t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; variable configuration
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-to-list 'org-modules 'org-habit)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-to-list 'org-modules 'org-expiry)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-to-list 'org-modules 'org-notify)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq org-src-fontify-natively t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq org-habit-graph-column 50)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq org-habit-show-habits-only-for-today t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; My priority system:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; A - Absolutely MUST, at all costs, be completed by the provided
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;;     due date. TODO: implement some type of extreme nagging
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;;     system that alerts in an intrusive way for overdue A
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;;     priority tasks.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; B - Should be given immediate attention if the due date is any
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;;     time in the next two days. Failure to meet due date would
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;;     be bad but not catastrophic.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; C - The highest priority to which tasks for which failure to
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;;     complete on time would not have considerable significant
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;;     consequences. There is still significant reason to prefer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;;     the completion of these tasks sooner rather than later.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; D - Failure to complete within a few days (or ever) of any
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;;     deadline would be completely okay. As such, any deadline
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;;     present on such a task is necessarily self imposed. Still
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;;     probably worth doing
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; E - Potentially not even worth doing at all, but worth taking a
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;;     note about in case it comes up again, or becomes more
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;;     interesting later.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; F - Almost certainly not worth attempting in the immediate future.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;;     Just brain dump.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; Priorities are somewhat contextual within each category. Things
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; in the gtd or work categories are generally regarded as much
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; more important than things with the same priority from the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; dotfiles category.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; Items without deadlines or scheduled times of a given priority
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; can be regarded as less important than items that DO have
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; deadlines of that same priority.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq org-lowest-priority 69) ;; The character E
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq org-completion-use-ido t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq org-enforce-todo-dependencies t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq org-deadline-warning-days 0)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq org-default-priority ?D)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq org-agenda-skip-scheduled-if-done t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq org-agenda-skip-deadline-if-done t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;;(add-to-list org-agenda-tag-filter-preset "+PRIORITY<\"C\"")
							 
						 
					
						
							
								
									
										
										
										
											2016-08-15 14:33:16 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq org-imenu-depth 10)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-15 14:33:16 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ;; Stop starting agenda from deleting frame setup!
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq org-agenda-window-setup 'other-window)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (define-key mode-specific-map [?a] 'org-agenda)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (unbind-key "C-j" org-mode-map)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-15 14:33:16 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (use-package org-bullets
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1)))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-09 13:00:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (use-package org-ehtml
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      :disabled t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (setq org-ehtml-docroot (expand-file-name "~/Dropbox/org"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (setq org-ehtml-allow-agenda t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (setq org-ehtml-editable-headlines t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (setq org-ehtml-everything-editable t)))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ;; Agenda setup.
							 
						 
					
						
							
								
									
										
										
										
											2017-09-09 15:26:19 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defvar imalison:org-gtd-file (imalison:join-paths imalison:org-dir "gtd.org"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defvar imalison:org-habits-file (imalison:join-paths imalison:org-dir "habits.org"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defvar imalison:org-calendar-file (imalison:join-paths imalison:org-dir "calendar.org"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defvar imalison:org-inbox-file (imalison:join-paths imalison:org-dir "inbox.org"))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (unless (boundp 'org-capture-templates)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (defvar org-capture-templates nil))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-02 17:04:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-18 09:14:50 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defvar imalison:created-property-string "
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :PROPERTIES:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :CREATED: %U
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :END:")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (imalison:add-to-org-agenda-files
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     (list imalison:org-gtd-file imalison:org-habits-file
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           imalison:org-calendar-file imalison:org-inbox-file))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-to-list 'org-capture-templates
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                 `("t" "GTD Todo (Linked)" entry (file ,imalison:org-gtd-file)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                   (function imalison:make-org-linked-todo-template)))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-to-list 'org-capture-templates
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                 `("g" "GTD Todo" entry (file ,imalison:org-gtd-file)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                   (function imalison:make-org-todo-template)))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-to-list 'org-capture-templates
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                 `("y" "Calendar entry (Linked)" entry
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                   (file ,imalison:org-calendar-file)
							 
						 
					
						
							
								
									
										
										
										
											2017-10-18 09:14:50 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                   ,(format "%s%s\n%s" "* %? %A" imalison:created-property-string "%^T")))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 14:34:29 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-to-list 'org-capture-templates
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                 `("c" "Calendar entry" entry
							 
						 
					
						
							
								
									
										
										
										
											2018-06-02 16:43:12 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                   (file ,imalison:org-calendar-file)
							 
						 
					
						
							
								
									
										
										
										
											2017-10-18 09:14:50 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                   ,(format "%s\n%s\n%s" "* %?" imalison:created-property-string "%^T")))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-09 13:00:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-to-list 'org-capture-templates
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                 `("h" "Habit" entry (file ,imalison:org-habits-file)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                   "* TODO
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SCHEDULED: %^t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    :PROPERTIES:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    :CREATED: %U
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    :STYLE: habit
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    :END:"))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-09 13:00:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (let ((this-week-high-priority
							 
						 
					
						
							
								
									
										
										
										
											2017-09-08 13:22:43 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								           ;; The < in the following line has behavior that is opposite
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								           ;; to what one might expect.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           '(tags-todo "+PRIORITY<\"C\"+DEADLINE<\"<+1w >\"DEADLINE>\"<+0d >\""
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       ((org-agenda-overriding-header
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         "Upcoming high priority tasks:"))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (due-today '(tags-todo
							 
						 
					
						
							
								
									
										
										
										
											2017-10-18 09:14:50 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                       "+DEADLINE=<\"<+1d>\"|+SCHEDULED= <\"<+0d >\""
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                       ((org-agenda-overriding-header
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         "Due today:"))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (recently-created '(tags-todo
							 
						 
					
						
							
								
									
										
										
										
											2017-10-13 22:12:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                              "+CREATED=>\"<-30d >\""
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                              ((org-agenda-overriding-header "Recently created:")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                               (org-agenda-cmp-user-defined 'org-cmp-creation-times)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                               (org-agenda-sorting-strategy '(user-defined-down)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (next '(todo "NEXT"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (started '(todo "STARTED"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (missing-deadline
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           '(tags-todo "-DEADLINE={.}/!"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       ((org-agenda-overriding-header
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         "These don't have deadlines:"))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (missing-priority
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           '(tags-todo "-PRIORITY={.}/!"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       ((org-agenda-overriding-header
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         "These don't have priorities:")))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-09 13:00:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (setq org-agenda-custom-commands
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            `(("M" "Main agenda view"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               ((agenda ""
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ((org-agenda-overriding-header "Agenda:")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         (org-agenda-ndays 5)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         (org-deadline-warning-days 0)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ,due-today
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ,next
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ,started
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ,this-week-high-priority
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ,recently-created)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               nil nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ,(cons "A" (cons "High priority upcoming" this-week-high-priority))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ,(cons "d" (cons "Overdue tasks and due today" due-today))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ,(cons "r" (cons "Recently created" recently-created))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ("h" "A, B priority:" tags-todo "+PRIORITY<\"C\""
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               ((org-agenda-overriding-header
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                 "High Priority:")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ("c" "At least priority C:" tags-todo "+PRIORITY<\"D\""
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               ((org-agenda-overriding-header
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                 "At least priority C:"))))))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ;; What follows is a description of the significance of each of
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; the values available in `org-todo-keywords'. All headings with
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; one of these keywords deal with the concept of the completion
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; of some task or collection of tasks to bring about a particular
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; state of affairs. In some cases, the actual tasks involved may
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; not be known at the time of task creation.
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ;; Incomplete States:
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ;; IDEA - This TODO exists in only the most abstract sense: it is
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; an imagined state of affairs that requires tasks that are
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; either not yet known, or have not thoroughly been considered.
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:10:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ;; RESEARCH - This TODO needs to be investigated further before
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; action can be taken to achieve the desired outcome. It is not
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; known how much time and effort will be consumed in the actual
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; completion of the task.
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:10:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ;; TODO - The scope and work involved in this TODO are well
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; understood, but for some reason or another, it is not something
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; that should be attempted in the immediate future. Typically
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; this is because the task is not considered a top priority, but
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; it may also be for some other reason.
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 14:10:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ;; NEXT - This TODO is immediately actionable and should be
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; started in the immediate future.
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ;; STARTED - Work on this TODO has already started, further work
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; is immediately actionable.
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ;; WAIT - The work involved in this TODO is well understood, but
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; it is blocked for the time being.
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 21:20:02 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ;; BACKLOG - While technically actionable, this task is not only
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; not worth pursuing in the immediate future, but the foreseable
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; future. It exists as a task mostly as a note/reminder, in case
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; it becomes higher priority in the future.
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 21:20:02 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ;; Complete States:
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 21:20:02 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ;; DONE - This TODO has been completed exactly as imagined.
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 21:20:02 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ;; HANDLED - This TODO was completed in spirit, though not by the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; means that were originally imagined/outlined in the TODO.
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 21:37:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ;; EXPIRED - The owner of this TODO failed to take action on it
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; within the appropriate time period, and there is now no point in
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; attempting it.
							 
						 
					
						
							
								
									
										
										
										
											2016-08-16 21:37:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ;; CANCELED - For whatever reason, this TODO should no longer be
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; attempted. This TODO is typically used in contrast to the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; EXPIRED TODO to indicate that the owner is not necessarily to
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; blame.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ))
							 
						 
					
						
							
								
									
										
										
										
											2016-12-24 23:57:48 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 02:08:34 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  Load org-config.el 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								I put some org-mode specific configs in a separate file so that they can be used
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								separately. This means that I need to load this file in init.el.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(load-file (concat (file-name-directory load-file-name) "org-config.el"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-11-07 13:46:39 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  Use frames 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package org
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (setq org-src-window-setup 'current-window)
							 
						 
					
						
							
								
									
										
										
										
											2017-04-17 23:27:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (when frame-mode
							 
						 
					
						
							
								
									
										
										
										
											2016-11-07 13:46:39 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (setcdr (assoc 'file org-link-frame-setup) 'find-file-other-frame)))))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 20:36:02 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  Disable yasnippet in org-mode 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package org
							 
						 
					
						
							
								
									
										
										
										
											2017-12-14 13:57:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :straight nil
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 20:36:02 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:disable-yas ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (yas-minor-mode -1))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'org-mode-hook 'imalison:disable-yas)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 12:09:12 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  Set Background Color of Source Blocks for Export 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This was taken from [[http://emacs.stackexchange.com/questions/3374/set-the-background-of-org-exported-code-blocks-according-to-theme ][here ]].
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 02:08:34 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp :tangle org-config.el
							 
						 
					
						
							
								
									
										
										
										
											2016-10-19 16:56:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package org
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:org-inline-css-hook (exporter)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      "Insert custom inline css to automatically set the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								background of code to whatever theme I'm using's background"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (when (eq exporter 'html)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (let* ((my-pre-bg (face-background 'default))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               (my-pre-fg (face-foreground 'default)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (setq
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           org-html-head-extra
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           (concat
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            org-html-head-extra
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (format "<style type=\"text/css\" >\n pre.src {background-color: %s; color: %s;}</style >\n"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    my-pre-bg my-pre-fg))))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'org-export-before-processing-hook 'imalison:org-inline-css-hook)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 15:41:42 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  Use my own default naming scheme for org-headings 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								First we define a function that will generate a sanitized version of the heading
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								as its link target.
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 02:08:34 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp :tangle org-config.el
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 15:41:42 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:org-get-raw-value (item)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (when (listp item)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (let* ((property-list (cadr item)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (when property-list (plist-get property-list :raw-value)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:sanitize-name (name)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (replace-regexp-in-string "[^[:alpha:]]" "" (s-downcase name)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:generate-name (datum cache)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let ((raw-value (imalison:org-get-raw-value datum)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (if raw-value
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (imalison:sanitize-name raw-value)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ;; This is the default implementation from org
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (let ((type (org-element-type datum)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (format "org%s%d"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                (if type
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    (replace-regexp-in-string "-" "" (symbol-name type))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    "secondarystring")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                (incf (gethash type cache 0)))))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This function replaces the default naming scheme with a call to
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~imalison:generate-name~ , and uses a slightly different uniquify approach. 
						 
					
						
							
								
									
										
										
										
											2016-12-28 02:08:34 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp :tangle org-config.el
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 12:58:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package ox
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer t
							 
						 
					
						
							
								
									
										
										
										
											2017-12-14 13:57:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :straight nil
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 12:21:30 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (defun org-export-get-reference (datum info)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    "Return a unique reference for DATUM, as a string.
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 15:41:42 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								DATUM is either an element or an object.  INFO is the current
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export state, as a plist.  Returned reference consists of
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								alphanumeric characters only."
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 12:21:30 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (let ((type (org-element-type datum))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (cache (or (plist-get info :internal-references)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                     (let ((h (make-hash-table :test #'eq)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       (plist-put info :internal-references h)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       h)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (reverse-cache (or (plist-get info :taken-internal-references)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                             (let ((h (make-hash-table :test 'equal)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                               (plist-put info :taken-internal-references h)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                               h))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (or (gethash datum cache)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (let* ((name (imalison:generate-name datum cache))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                 (number (+ 1 (gethash name reverse-cache -1)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                 (new-name (format "%s%s" name (if (< 0 number) number ""))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (puthash name number reverse-cache)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (puthash datum new-name cache)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            new-name)))))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 15:41:42 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 18:27:49 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  Add link icons in headings that lead to themselves 
						 
					
						
							
								
									
										
										
										
											2016-12-28 18:17:57 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp :tangle org-config.el
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package ox-html
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :commands (org-html-export-as-html org-html-export-as-html)
							 
						 
					
						
							
								
									
										
										
										
											2017-12-14 13:57:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :straight nil
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 18:17:57 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 18:27:49 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defvar imalison:link-svg-html
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      "<svg aria-hidden=\"true\" class=\"octicon octicon-link\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\" ><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\" ></path ></svg >")
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 18:17:57 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defvar imalison:current-html-headline)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:set-current-html-headline (headline &rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (setq imalison:current-html-headline headline))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:clear-current-html-headline (&rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (setq imalison:current-html-headline nil))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:org-html-format-heading-function (todo todo-type priority text tags info)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (let* ((reference (when imalison:current-html-headline
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          (org-export-get-reference imalison:current-html-headline info)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             ;; Don't do anything special if the current headline is not set
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 18:27:49 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								             (new-text (if reference
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           (format "%s <a href=\"#%s\" >%s</a >" text reference imalison:link-svg-html)
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 18:17:57 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                         text)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (org-html-format-headline-default-function
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         todo todo-type priority new-text tags info))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; This is set before and cleared afterwards, so that we know when we are
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; generating the text for the headline itself and when we are not.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (advice-add 'org-html-headline :before 'imalison:set-current-html-headline)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (advice-add 'org-html-headline :after 'imalison:clear-current-html-headline)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq org-html-format-headline-function
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          'imalison:org-html-format-heading-function)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 18:58:16 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  Allow with query params in image extentions 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp :tangle org-config.el
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package ox-html
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer t
							 
						 
					
						
							
								
									
										
										
										
											2017-12-14 13:57:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :straight nil
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 18:58:16 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (setq org-html-inline-image-rules
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        '(("file" . "\\.\\(jpeg\\|jpg\\|png\\|gif\\|svg\\)\\(\\?.*?\\)?\\'")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          ("http" . "\\.\\(jpeg\\|jpg\\|png\\|gif\\|svg\\)\\(\\?.*?\\)?\\'")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          ("https" . "\\.\\(jpeg\\|jpg\\|png\\|gif\\|svg\\)\\(\\?.*?\\)?\\'"))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2018-07-06 10:40:44 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  Use org-tempo to allow inserting templates using e.g. <s 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+begin_src emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package org-tempo
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :straight nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :after org)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+end_src
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  org-projectile 
						 
					
						
							
								
									
										
										
										
											2016-12-24 23:57:48 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package org-projectile
							 
						 
					
						
							
								
									
										
										
										
											2017-10-19 21:02:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer 3
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 12:50:12 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2017-07-25 11:40:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq org-projectile-projects-file
							 
						 
					
						
							
								
									
										
										
										
											2017-10-18 09:14:50 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          (imalison:join-paths imalison:org-dir "projects.org")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          org-projectile-capture-template
							 
						 
					
						
							
								
									
										
										
										
											2017-10-18 19:34:15 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          (format "%s%s" "* TODO %?" imalison:created-property-string))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-to-list 'org-capture-templates
							 
						 
					
						
							
								
									
										
										
										
											2017-07-25 11:40:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                 (org-projectile-project-todo-entry
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  :capture-character "l"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  :capture-heading "Linked Project TODO"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-to-list 'org-capture-templates
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                 (org-projectile-project-todo-entry
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  :capture-character "p"))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq org-confirm-elisp-link-function nil)
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (imalison:add-to-org-agenda-files (org-projectile-todo-files))))
							 
						 
					
						
							
								
									
										
										
										
											2016-12-24 23:57:48 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2018-06-02 16:43:12 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  org-pomodoro 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package org-pomodoro
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :after org)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 17:57:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  org-super-agenda 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package org-super-agenda
							 
						 
					
						
							
								
									
										
										
										
											2017-08-25 12:55:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer t
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 17:57:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
									
										
										
										
											2017-08-25 12:50:12 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (org-super-agenda-mode +1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq org-super-agenda-groups
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          '((:order-multi (1 (:name "High priority"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     :priority> "C")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (:order-multi (1 (:name "Done today"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                    :and (:regexp "State \"DONE\""
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                                  :log t))))))))
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 17:57:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								****  org-notify 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 #+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package org-notify
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :after org
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defun imalison:org-notify-notification-handler (plist)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (sauron-add-event 'org-notify 4 (format "%s, %s.\n" (plist-get plist :heading)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                              (org-notify-body-text plist))))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq org-show-notification-handler 'imalison:org-notify-notification-handler)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (org-notify-add 'default '(:time "1h" :actions imalison:org-notify-notification-handler
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     :period "2m" :duration 60))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (org-notify-add 'default '(:time "100m" :actions imalison:org-notify-notification-handler
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     :period "2m" :duration 60))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (org-notify-add 'urgent-second '(:time "3m" :actions (-notify/window -ding)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                           :period "15s" :duration 10))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (org-notify-add 'minute '(:time "5m" :actions -notify/window
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                    :period "100s" :duration 70))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (org-notify-add '12hours
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    '(:time "3m" :actions (-notify/window -ding)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            :period "15s" :duration 10)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    '(:time "100m" :actions -notify/window
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            :period "2m" :duration 60)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    '(:time "12h" :actions -notify/window :audible nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            :period "10m" :duration 200))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (org-notify-add '5days
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    '(:time "100m" :actions -notify/window
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            :period "2m" :duration 60)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    '(:time "2d" :actions -notify/window
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            :period "15m" :duration 100)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    '(:time "5d" :actions -notify/window
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            :period "2h" :duration 200))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (org-notify-add 'long-20days
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    '(:time "2d" :actions -notify/window
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            :period "15m" :duration 60)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    '(:time "5d" :actions -notify/window
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            :period "2h" :duration 60)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    '(:time "20d" :actions -email :period "2d" :audible nil))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (org-notify-add 'long-50days
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    '(:time "4d" :actions -notify/window
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            :period "30m" :duration 100)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    '(:time "10d" :actions -notify/window
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            :period "4h" :duration 200)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    '(:time "50d" :actions -email :period "3d" :audible nil))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (org-notify-add 'long-100days
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    '(:time "2d" :actions -notify/window
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            :period "1h" :duration 200)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    '(:time "10d" :actions -notify/window
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            :period "10h" :duration 300)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    '(:time "50d" :actions -email :period "3d" :audible nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    '(:time "100d" :actions -email :period "5d" :audible nil))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (org-notify-start 10)))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 #+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								****  org-reveal 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package ox-reveal
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands org-reveal
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (setq org-reveal-root
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (imalison:join-paths "file://" imalison:projects-directory "reveal.js")))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								****  org-caldav 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package org-caldav
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :defer t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq org-caldav-url "https://www.google.com/calendar/dav"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          org-caldav-inbox imalison:org-inbox-file
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          org-caldav-files (list imalison:org-calendar-file)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          org-icalendar-timezone "America/Los_Angeles")))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  TeX 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package tex
							 
						 
					
						
							
								
									
										
										
										
											2018-06-05 21:29:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :straight (auctex :host github :repo "raxod502/auctex"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    :branch "fork/1"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    :files (:defaults (:exclude "doc/*.texi")))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :commands TeX-mode
							 
						 
					
						
							
								
									
										
										
										
											2021-09-13 21:30:26 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer t
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defun imalison:TeX-mode-hook ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (turn-on-reftex)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (TeX-source-correlate-mode +1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (TeX-PDF-mode +1)))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (unbind-key "C-j" TeX-mode-map)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (TeX-global-PDF-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq TeX-auto-save t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          TeX-parse-self t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          TeX-save-query nil
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          TeX-PDF-mode t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (TeX-global-PDF-mode t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'TeX-mode-hook 'imalison:TeX-mode-hook)))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								****  latex 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 #+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package latex
							 
						 
					
						
							
								
									
										
										
										
											2017-12-14 13:57:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :straight auctex
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :after tex
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (unbind-key "C-j" LaTeX-mode-map)))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 #+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								****  auctex-latexmk 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package auctex-latexmk
							 
						 
					
						
							
								
									
										
										
										
											2023-06-21 17:52:19 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq auctex-latexmk-inherit-TeX-PDF-mode t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (auctex-latexmk-setup)))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								****  company-auctex 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package company-auctex
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :after tex
							 
						 
					
						
							
								
									
										
										
										
											2021-09-13 21:30:26 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer t
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (company-auctex-init))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  markdown-mode 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package markdown-mode
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer t
							 
						 
					
						
							
								
									
										
										
										
											2023-07-28 00:06:28 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :mode ("\\.md\\'")
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :init
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-hook 'markdown-mode-hook 'imalison:disable-linum-mode)))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-16 18:53:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  plantuml-mode 
						 
					
						
							
								
									
										
										
										
											2016-08-24 17:42:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-10-16 18:53:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package plantuml-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands plantuml-mode
							 
						 
					
						
							
								
									
										
										
										
											2016-08-24 17:42:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :mode ("\\.puml\\'" "\\.plantuml\\'")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
									
										
										
										
											2016-08-28 20:04:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-09-20 01:44:50 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (cond ((equal system-type 'darwin)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           (let* ((plantuml-dir
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                   (s-trim (shell-command-to-string "brew --prefix plantuml")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  (filename
							 
						 
					
						
							
								
									
										
										
										
											2016-10-09 23:02:10 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                   (when (file-exists-p plantuml-dir)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                     (--first (s-ends-with? ".jar" it) (directory-files plantuml-dir))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  (filepath (when filename
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              (imalison:join-paths plantuml-dir filename))))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-16 18:53:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								             (setq plantuml-jar-path filepath
							 
						 
					
						
							
								
									
										
										
										
											2016-09-20 01:44:50 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                   org-plantuml-jar-path filepath)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          ((equal system-type 'gnu/linux)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           (let ((filepath "/opt/plantuml/plantuml.jar"))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-16 18:53:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								             (setq plantuml-jar-path filepath
							 
						 
					
						
							
								
									
										
										
										
											2016-09-20 01:44:50 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                   org-plantuml-jar-path filepath))))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-24 17:42:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-to-list
							 
						 
					
						
							
								
									
										
										
										
											2016-10-16 18:53:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								     'org-src-lang-modes '("plantuml" . plantuml))))
							 
						 
					
						
							
								
									
										
										
										
											2016-08-24 17:42:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  wsd-mode 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-24 17:42:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package wsd-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands (wsd-mode))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2019-07-10 13:31:42 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  adoc-mode 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+begin_src emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package adoc-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode "\\.adoc\\'")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+end_src
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Utility 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  restclient 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package restclient
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode (("\\.restclient\\'" . restclient-mode))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 13:57:20 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (use-package company-restclient)))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  jq-mode 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 14:26:34 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package jq-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode "\\.jq\\'")
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2017-03-25 11:18:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  systemd 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package systemd
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands systemd-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (ignore
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   (add-to-list 'auto-mode-alist
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                '("\\.service\\'" . systemd-mode))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   (add-to-list 'auto-mode-alist
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                '("\\.socket\\'" . systemd-mode))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-11-13 09:49:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  Source Control  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  magit 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package magit
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands magit-status
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind (("C-x g" . imalison:magit-status))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (emit-let-around imalison:magit-status-traditional
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                     magit-status
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                     (magit-display-buffer-function
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      'magit-display-buffer-traditional))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (emit-prefix-selector imalison:magit-status
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          magit-status
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          imalison:magit-status-traditional)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:after-magit-visit-file (&rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (when (derived-mode-p 'org-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (org-show-context 'magit-goto))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2017-04-17 23:27:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (when frame-mode
							 
						 
					
						
							
								
									
										
										
										
											2016-11-13 09:49:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (setq magit-commit-show-diff t))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (unbind-key "C-j" magit-status-mode-map)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (unbind-key "C-j" magit-hunk-section-map)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (unbind-key "C-j" magit-file-section-map)
							 
						 
					
						
							
								
									
										
										
										
											2021-08-01 21:15:42 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (unbind-key "C-j" magit-diff-section-base-map)
							 
						 
					
						
							
								
									
										
										
										
											2016-11-13 09:49:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq magit-last-seen-setup-instructions "1.4.0"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          magit-display-buffer-function
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          'magit-display-buffer-same-window-except-diff-v1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (magit-auto-revert-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-to-list 'org-show-context-detail '(magit-goto . lineage))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (advice-add 'magit-diff-visit-file :after 'imalison:after-magit-visit-file)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'magit-popup-mode-hook 'imalison:disable-show-trailing-whitespace)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2019-07-10 13:31:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								***  forge 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+begin_src emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package forge
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:50:13 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2019-07-10 13:31:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :after magit)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+end_src
							 
						 
					
						
							
								
									
										
										
										
											2018-05-27 23:44:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  vc 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+begin_src emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package vc
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun vc-find-revision-of-file (revision)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (interactive
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (list (vc-read-revision
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              "Revision to visit: "
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (list (imalison:join-paths (magit-toplevel) (car (magit-list-files)))))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (let* ((file (completing-read "Select file to visit: " (magit-revision-files revision)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             (full-file (imalison:join-paths (magit-toplevel) file)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (switch-to-buffer (vc-find-revision full-file revision))))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+end_src
							 
						 
					
						
							
								
									
										
										
										
											2016-11-13 09:49:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  git-link 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package git-link
							 
						 
					
						
							
								
									
										
										
										
											2017-08-25 15:14:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer t
							 
						 
					
						
							
								
									
										
										
										
											2016-11-13 09:49:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq git-link-use-commit t)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  magit-gitflow 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package magit-gitflow
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :diminish magit-gitflow-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :after magit
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :init
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq magit-gitflow-popup-key "C-k"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'magit-mode-hook 'turn-on-magit-gitflow)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  git-gutter 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package git-gutter
							 
						 
					
						
							
								
									
										
										
										
											2017-04-17 17:08:19 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2016-11-13 09:49:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2017-09-05 15:43:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (global-git-gutter-mode +1)))
							 
						 
					
						
							
								
									
										
										
										
											2016-11-13 09:49:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  gitolite-clone 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package gitolite-clone
							 
						 
					
						
							
								
									
										
										
										
											2017-08-25 12:55:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer 4
							 
						 
					
						
							
								
									
										
										
										
											2016-11-13 09:49:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun gitolite-clone-force-refresh ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (gitolite-clone-get-projects nil nil t))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  github 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  github-search 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package github-search
							 
						 
					
						
							
								
									
										
										
										
											2016-11-13 09:49:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :commands (github-search-clone-repo github-search-user-clone-repo)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:get-appropriate-path-from-gh-repo-for-go (repo)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (require 'go-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (imalison:get-go-src "github.com" (oref (oref repo :owner) :login)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           (oref repo :name)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:get-projects-directory-target-from-repo (repo)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (let ((prospective-path
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             (if (equal (oref repo language) "Go")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                 (imalison:get-appropriate-path-from-gh-repo-for-go repo)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               (imalison:join-paths imalison:projects-directory (oref repo :name)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (if (file-exists-p prospective-path)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (funcall 'github-search-prompt-for-target-directory repo)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          prospective-path))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq github-search-get-target-directory-for-repo-function
							 
						 
					
						
							
								
									
										
										
										
											2019-05-25 21:24:19 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          'imalison:get-projects-directory-target-from-repo
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          ;; See https://github.com/sigma/gh.el/issues/102
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3")))
							 
						 
					
						
							
								
									
										
										
										
											2016-11-13 09:49:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  github-clone 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package github-clone
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands (github-clone-add-parent-remote
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             github-clone-add-source-remote
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             github-clone-fork-remote
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             github-clone-add-existing-remote
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             github-clone))
							 
						 
					
						
							
								
									
										
										
										
											2016-11-13 09:49:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  github-notifier 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This is disabled because it was causing too many issues with my
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								modeline and with excessive http requests to github.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package github-notifier
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (advice-add 'github-notifier-update :around 'imalison:shut-up-around)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (github-notifier-mode)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  github-browse-file 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package github-browse-file
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands github-browse-file)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  magit-gh-pulls 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package magit-gh-pulls
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :diminish magit-gh-pulls-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :after magit
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'magit-mode-hook 'turn-on-magit-gh-pulls)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  gist 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package gist
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands (gist-region gist-region-private gist-buffer gist-buffer-private
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         gist-region-or-buffer gist-region-or-buffer-private
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         gist-list-user gist-list gist-fetch gist-star
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         gist-unstar gist-list-starred gist-fork))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  Programming  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  realgud 
						 
					
						
							
								
									
										
										
										
											2016-06-12 19:07:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								realgud provides debugging support with many external debuggers in emacs
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2023-04-16 01:02:23 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package realgud
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-12 19:07:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  emr 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								emr (emacs refactor) provides support for refactoring in many programming languages
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package emr
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind (:map prog-mode-map
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ("M-RET" . emr-show-refactor-menu))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config (emr-initialize))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  semantic 
						 
					
						
							
								
									
										
										
										
											2016-06-19 02:59:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package semantic
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands semantic-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'prog-mode-hook 'semantic-mode)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-19 02:59:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2017-07-20 14:16:46 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  language-server-protocol (lsp) 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2018-03-23 14:58:42 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package lsp-mode
							 
						 
					
						
							
								
									
										
										
										
											2023-07-28 00:06:28 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer 3
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands lsp
							 
						 
					
						
							
								
									
										
										
										
											2018-12-07 14:38:45 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2021-08-14 04:11:44 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defun imalison:nix-develop-lsp-wrapper-function (argv)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (append
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (append (list "nix" "develop" "-I" "." "--command")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               argv)))
							 
						 
					
						
							
								
									
										
										
										
											2019-01-02 12:40:44 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq lsp-prefer-flymake nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (use-package lsp-ui
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      :config
							 
						 
					
						
							
								
									
										
										
										
											2021-08-14 04:11:44 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (add-hook 'lsp-mode-hook 'lsp-ui-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (setq lsp-ui-doc-position 'bottom)))))
							 
						 
					
						
							
								
									
										
										
										
											2017-07-20 14:16:46 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  Utility  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  term 
						 
					
						
							
								
									
										
										
										
											2016-11-21 17:45:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The main thing I do here is restore a bunch of keybindings that are eliminated
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								in term-mode. This makes term-mode 1000% more useful
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(especially having M-x and C-y available).
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package term
							 
						 
					
						
							
								
									
										
										
										
											2017-08-25 15:14:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
									
										
										
										
											2016-11-13 09:50:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:avy-term (arg)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (interactive "P")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (term-line-mode)
							 
						 
					
						
							
								
									
										
										
										
											2016-11-17 09:55:12 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (imalison:avy arg))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:term-paste (&optional string)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (process-send-string
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (get-buffer-process (current-buffer))
							 
						 
					
						
							
								
									
										
										
										
											2017-08-25 12:55:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								       (if string string (current-kill 0)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (:map term-mode-map
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ("C-c C-k" . imalison:term-char-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        :map term-raw-escape-map
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        ("M-x" . execute-extended-command)
							 
						 
					
						
							
								
									
										
										
										
											2017-08-25 12:55:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        ("C-j" . imalison:avy-term)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        :map term-raw-map
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        ("M-x" . execute-extended-command)
							 
						 
					
						
							
								
									
										
										
										
											2017-08-25 12:55:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        ("C-j" . imalison:avy-term)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ("M-:" . eval-expression)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ("C-y" . imalison:term-paste)
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        ("M-y" . yank-pop))
							 
						 
					
						
							
								
									
										
										
										
											2017-08-25 12:55:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-11-17 09:55:12 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:term-char-mode ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (term-char-mode)
							 
						 
					
						
							
								
									
										
										
										
											2017-08-25 12:55:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (goto-char (point-max)))
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-09-22 17:06:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (define-key term-raw-map (kbd "C-h") help-map)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-15 13:39:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-hook 'term-mode-hook 'imalison:disable-linum-mode)
							 
						 
					
						
							
								
									
										
										
										
											2016-11-17 09:55:12 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-hook 'term-mode-hook 'imalison:disable-yas-minor-mode)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-21 22:27:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-hook 'term-mode-hook 'imalison:disable-show-trailing-whitespace)
							 
						 
					
						
							
								
									
										
										
										
											2017-05-16 15:45:12 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq term-buffer-maximum-size 0
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          term-suppress-hard-newline t)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2020-11-29 17:37:34 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  vterm 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+begin_src emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;; (use-package vterm)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+end_src
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  term-manager 
						 
					
						
							
								
									
										
										
										
											2016-06-09 14:09:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package term-manager
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun imalison:set-escape-char (&rest _args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (let (term-escape-char)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (term-set-escape-char ?\C-x))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (advice-add
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     'term-manager-default-build-term :after 'imalison:set-escape-char)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-09 14:09:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  term-projectile 
						 
					
						
							
								
									
										
										
										
											2016-06-09 14:09:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package term-projectile
							 
						 
					
						
							
								
									
										
										
										
											2016-09-22 13:08:40 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :bind ("C-c 7" . imalison:term-hydra-global/body)
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 19:35:50 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :commands
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (term-projectile-backward
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   term-projectile-create-new
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   term-projectile-create-new-default-directory
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   term-projectile-default-directory-backward
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   term-projectile-default-directory-forward
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   term-projectile-forward
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   term-projectile-switch)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-08-15 16:04:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (emit-prefix-selector imalison:term
							 
						 
					
						
							
								
									
										
										
										
											2016-09-22 13:08:40 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                          term-projectile-forward
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          term-projectile-create-new)
							 
						 
					
						
							
								
									
										
										
										
											2016-09-21 20:28:24 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-09-22 13:08:40 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defvar imalison:term-hydra-original-default-directory)
							 
						 
					
						
							
								
									
										
										
										
											2016-09-21 20:28:24 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-09-22 13:08:40 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (defhydra imalison:term-hydra-default-directory
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (:body-pre
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (term-projectile-default-directory-forward-restored))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      "term - default-directory"
							 
						 
					
						
							
								
									
										
										
										
											2016-09-24 03:09:59 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      ("s" term-projectile-switch-to)
							 
						 
					
						
							
								
									
										
										
										
											2016-09-22 13:08:40 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      ("f" term-projectile-default-directory-forward-restored)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("b" term-projectile-default-directory-backward-restored)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("c" term-projectile-default-directory-create-new-restored)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("d" term-projectile-default-directory-forward-restored)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("g" imalison:term-hydra-global/body-restored :exit t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("p" imalison:term-hydra-projectile/body-restored :exit t))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defhydra imalison:term-hydra-projectile
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (:body-pre
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         (term-projectile-forward-restored)))
							 
						 
					
						
							
								
									
										
										
										
											2016-09-21 20:28:24 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      "term - projectile"
							 
						 
					
						
							
								
									
										
										
										
											2016-09-24 03:09:59 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      ("s" term-projectile-switch-to)
							 
						 
					
						
							
								
									
										
										
										
											2016-09-22 13:08:40 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      ("f" term-projectile-forward-restored)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("b" term-projectile-backward-restored)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("c" term-projectile-create-new-restored)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("d" imalison:term-hydra-default-directory/body-restored :exit t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("g" imalison:term-hydra-global/body-restored :exit t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("p" term-projectile-forward-restored))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defhydra imalison:term-hydra-global
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (:body-pre
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       (progn (setq imalison:term-hydra-original-default-directory
							 
						 
					
						
							
								
									
										
										
										
											2016-09-22 17:07:46 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    default-directory)))
							 
						 
					
						
							
								
									
										
										
										
											2016-09-22 13:08:40 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      "term - global"
							 
						 
					
						
							
								
									
										
										
										
											2016-09-24 03:09:59 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      ("s" term-projectile-switch-to)
							 
						 
					
						
							
								
									
										
										
										
											2016-09-22 13:08:40 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      ("f" term-projectile-global-forward-restored)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("b" term-projectile-global-backward-restored)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("c" term-projectile-global-create-new-restored)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("d" imalison:term-hydra-default-directory/body-restored :exit t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("g" term-projectile-global-forward-restored)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ("p" imalison:term-hydra-projectile/body-restored :exit t))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (mapcar (lambda (term-projectile-function)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (defalias (imalison:concat-symbols term-projectile-function '-restored)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                (lambda (&rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  (let ((default-directory imalison:term-hydra-original-default-directory))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    (apply term-projectile-function args)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            '(term-projectile-default-directory-forward
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              term-projectile-default-directory-backward
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              term-projectile-default-directory-create-new
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              term-projectile-forward
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              term-projectile-backward
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              term-projectile-create-new
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              term-projectile-global-forward
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              term-projectile-global-backward
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              term-projectile-global-create-new
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              imalison:term-hydra-global/body
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              imalison:term-hydra-projectile/body
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              imalison:term-hydra-default-directory/body))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-09 14:09:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  crux 
						 
					
						
							
								
									
										
										
										
											2016-06-12 19:07:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								crux-reopen-as-root-mode makes it so that any file owned by root will automatically be opened as the root user.
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 12:18:17 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package crux
							 
						 
					
						
							
								
									
										
										
										
											2017-08-26 14:13:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer 10
							 
						 
					
						
							
								
									
										
										
										
											2016-09-20 02:26:13 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :bind (("C-c C-s" . crux-sudo-edit)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 18:24:10 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								         ("C-c C-r" . crux-eval-and-replace)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("C-c o" . crux-open-with))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (crux-reopen-as-root-mode)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-10 14:02:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-23 19:02:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  kde-connect 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package kdeconnect)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2017-04-20 17:36:03 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  aurel 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package aurel
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :defer t)
							 
						 
					
						
							
								
									
										
										
										
											2017-04-20 17:36:03 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  Chat  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  erc 
						 
					
						
							
								
									
										
										
										
											2016-06-13 16:18:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package erc
							 
						 
					
						
							
								
									
										
										
										
											2021-08-21 19:07:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :commands erc
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; (add-to-list 'erc-modules 'notifications)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; logging:
							 
						 
					
						
							
								
									
										
										
										
											2016-08-23 14:49:03 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (use-package erc-colorize
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (erc-colorize-mode 1))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 16:18:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  bitlbee 
						 
					
						
							
								
									
										
										
										
											2016-06-13 16:18:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package bitlbee
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defvar bitlbee-password "geheim")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'erc-join-hook 'bitlbee-identify)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun bitlbee-identify ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      "If we're on the bitlbee server, send the identify command to the
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 16:18:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								   &bitlbee channel."
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (when (and (string= "localhost" erc-session-server)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                 (string= "&bitlbee" (buffer-name)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (erc-message "PRIVMSG" (format "%s identify %s"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                       (erc-default-target)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                       bitlbee-password))))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 16:18:05 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  slack 
						 
					
						
							
								
									
										
										
										
											2016-07-05 12:12:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package slack
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands slack-start)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-05 12:12:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  Cooperation  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  togetherly 
						 
					
						
							
								
									
										
										
										
											2016-08-28 20:04:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package togetherly
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :defer t)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-28 20:04:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  floobits 
						 
					
						
							
								
									
										
										
										
											2016-08-28 20:04:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package floobits
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :defer t)
							 
						 
					
						
							
								
									
										
										
										
											2016-08-28 20:04:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  rudel 
						 
					
						
							
								
									
										
										
										
											2016-08-28 20:04:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package rudel
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  Other  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  anzu 
						 
					
						
							
								
									
										
										
										
											2016-06-13 17:35:28 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package anzu
							 
						 
					
						
							
								
									
										
										
										
											2017-08-26 14:13:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer 10
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (global-anzu-mode +1)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 14:43:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (custom-set-variables
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     '(anzu-mode-lighter "")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     '(anzu-deactivate-region t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     '(anzu-search-threshold 1000)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     '(anzu-replace-threshold 50)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     '(anzu-replace-to-string-separator " => "))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 14:43:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (define-key isearch-mode-map [remap isearch-query-replace]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      #'anzu-isearch-query-replace)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (define-key isearch-mode-map [remap isearch-query-replace-regexp]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      #'anzu-isearch-query-replace-regexp)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 17:35:28 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  shell-history 
						 
					
						
							
								
									
										
										
										
											2016-08-15 19:32:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								I think that shell-history is causing projectile to be very slow so I have disabled it.
							 
						 
					
						
							
								
									
										
										
										
											2016-06-28 17:15:02 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package shell-history
							 
						 
					
						
							
								
									
										
										
										
											2016-08-15 19:32:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-28 17:15:02 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  iedit 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								I don't use iedit directly, but it is used by [[*emr ][emr ]] and I need to disable ~iedit-toggle-key-default~  or else a buffer pops up complaing that the key has been bound to something else
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 12:16:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package iedit
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :defer t)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  tramp 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package tramp
							 
						 
					
						
							
								
									
										
										
										
											2019-07-10 13:33:59 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :straight nil
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :commands tramp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (setq tramp-default-method "scp"))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  narrow-indirect 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package narrow-indirect
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :init
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (define-key ctl-x-4-map "nd" 'ni-narrow-to-defun-indirect-other-window)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (define-key ctl-x-4-map "nn" 'ni-narrow-to-region-indirect-other-window)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (define-key ctl-x-4-map "np" 'ni-narrow-to-page-indirect-other-window)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-20 11:49:12 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  editorconfig 
						 
					
						
							
								
									
										
										
										
											2016-06-28 14:46:02 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								I had to disable this mode because something that it does messes with coding settings and makes it so that I have to select the appropriate encoding every time I save gpg encrypted files.
							 
						 
					
						
							
								
									
										
										
										
											2016-06-20 11:49:12 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package editorconfig
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-to-list 'editorconfig-exclude-modes '(org-mode))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (editorconfig-mode 1)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-20 11:09:12 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2019-05-25 21:22:24 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  direnv 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+begin_src emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package direnv
							 
						 
					
						
							
								
									
										
										
										
											2019-07-10 13:32:16 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
									
										
										
										
											2019-05-25 21:22:24 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (direnv-mode +1))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+end_src
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  dtrt-indent 
						 
					
						
							
								
									
										
										
										
											2016-06-20 11:09:12 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package dtrt-indent
							 
						 
					
						
							
								
									
										
										
										
											2019-01-02 12:38:48 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :diminish 'dtrt-indent-mode
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :commands 'dtrt-indent-mode
							 
						 
					
						
							
								
									
										
										
										
											2019-01-11 13:40:54 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun dtrt-indent-force-adapt ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (setq dtrt-indent-original-indent nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (dtrt-indent-adapt)))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :init (add-hook 'prog-mode-hook 'dtrt-indent-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq dtrt-indent-active-mode-line-info " [⟼]")))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  indent-guide 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package indent-guide
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (indent-guide-global-mode -1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq indent-guide-delay 0.1)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  rainbow-delimiters 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package rainbow-delimiters
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands rainbow-delimiters-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :init
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'prog-mode-hook (lambda () (rainbow-delimiters-mode t)))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  undo-tree 
						 
					
						
							
								
									
										
										
										
											2018-06-17 03:02:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Disabled because it makes it hard to redo things
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package undo-tree
							 
						 
					
						
							
								
									
										
										
										
											2018-06-17 03:02:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :bind (("C--" . undo-redo)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("C-c u" . undo-tree-visualize)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("C-c r" . undo-tree-redo))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (diminish 'undo-tree-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :init
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;;(setq undo-tree-visualizer-diff t) ;; This causes performance problems
							 
						 
					
						
							
								
									
										
										
										
											2017-10-25 20:18:33 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq undo-limit (expt 2 25)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          undo-strong-limit (expt 2 25))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (global-undo-tree-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq undo-tree-visualizer-timestamps t)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:34:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  recentf 
						 
					
						
							
								
									
										
										
										
											2016-06-16 11:34:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package recentf
							 
						 
					
						
							
								
									
										
										
										
											2018-06-17 03:02:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-08-25 17:47:18 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq recentf-max-saved-items 1000
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          recentf-max-menu-items 1000)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (advice-add 'recentf-cleanup :around 'imalison:shut-up-around)
							 
						 
					
						
							
								
									
										
										
										
											2023-07-27 18:16:04 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (recentf-mode +1)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 12:19:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  key-chord 
						 
					
						
							
								
									
										
										
										
											2016-06-25 16:40:28 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								I have currently disabled key-chord because it may cause typing lag.
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package key-chord
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :preface
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (defun imalison:disable-keychord-around (function &rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (let ((key-chord-mode-was-enabled (bound-and-true-p key-chord-mode)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (when key-chord-mode-was-enabled (key-chord-mode -1))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (condition-case err (progn (apply function args)) (error))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (when key-chord-mode-was-enabled (key-chord-mode 1))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (advice-add 'key-chord-mode :around 'imalison:shut-up-around)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (key-chord-mode 1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (advice-add 'imalison:avy :around 'imalison:disable-keychord-around)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (key-chord-define-global "tg" 'imalison:term-hydra/body)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (key-chord-define-global "pj" 'imalison:projectile-find-file)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (key-chord-define-global "p[" 'projectile-switch-project)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (key-chord-define-global "fj" 'imalison:do-ag)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (key-chord-define-global "jh" 'imalison:avy)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  nodejs-repl 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package nodejs-repl
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands nodejs-repl)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  calc-mode 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package calc-mode
							 
						 
					
						
							
								
									
										
										
										
											2017-12-14 13:57:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :straight nil
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :commands calc
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq calc-context-sensitive-enter t)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  jabber 
						 
					
						
							
								
									
										
										
										
											2016-12-29 16:36:33 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Disabled because it has its own version of hexrgb which might cause conflicts
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package jabber
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands jabber-connect
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 16:36:33 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq jabber-alert-presence-hooks nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun jabber-message-content-message (from buffer text)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (when (or jabber-message-alert-same-buffer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                (not (memq (selected-window) (get-buffer-window-list buffer))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (if (jabber-muc-sender-p from)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (format "%s: %s" (jabber-jid-resource from) text)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (format "%s: %s" (jabber-jid-displayname from) text))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq jabber-alert-message-function 'jabber-message-content-message)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  htmlize 
						 
					
						
							
								
									
										
										
										
											2016-12-28 02:08:34 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								This package is needed to export org to html.
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package htmlize)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  calfw 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-07-29 00:40:50 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package calfw-org
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2017-07-29 00:40:50 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :demand t)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  clocker 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Not really sure what this is
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package clocker
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  deft 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package deft
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands deft
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq deft-default-extension "org")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq deft-extensions '("org"))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq deft-use-filter-string-for-filename t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq deft-file-naming-rules '((noslash . "_")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                   (nospace . "_")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                   (case-fn . downcase)))
							 
						 
					
						
							
								
									
										
										
										
											2018-06-14 15:27:24 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq deft-directory (imalison:join-paths imalison:org-dir "notes"))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  epg 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package epg
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :after shut-up
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
									
										
										
										
											2016-08-25 10:16:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (shut-up
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (epa-file-enable)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-20 00:37:02 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  pinentry 
						 
					
						
							
								
									
										
										
										
											2016-09-03 16:46:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package pinentry
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :defer 5
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (pinentry-start))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  twittering-mode 
						 
					
						
							
								
									
										
										
										
											2016-06-20 00:37:02 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package twittering-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands twittering-mode)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-20 00:37:02 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  matrix-client 
						 
					
						
							
								
									
										
										
										
											2016-06-20 00:37:02 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package matrix-client
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t ;; fails to load eieio on startup
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  )
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  mu4e 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2018-04-28 01:58:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								;; (eval-when-compile
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;;   (require 's)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;;   (defvar mu4e-elisp-directory
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								;;     (s-trim (shell-command-to-string "mu4e_directory"))))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package mu4e
							 
						 
					
						
							
								
									
										
										
										
											2018-04-28 01:58:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :load-path mu4e-elisp-directory
							 
						 
					
						
							
								
									
										
										
										
											2017-12-14 13:57:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :straight nil
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :commands (mu4e mu4e-view-message-with-msgid mu4e-update-index email)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind ("C-c 0" . email)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun email (&optional arg)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (interactive "P")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (if (string-equal (persp-name persp-curr) "email")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (progn (delete-other-windows) (mu4e))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (persp-switch "email")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (when (or (not (mu4e-running-p)) arg)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (delete-other-windows) (mu4e)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; enable inline images
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq mu4e-view-show-images t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; show images
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq mu4e-show-images t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; Try to display html as text
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq mu4e-view-prefer-html nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq mu4e-html2text-command "html2text -width 80 -nobs -utf8")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; use imagemagick, if available
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (when (fboundp 'imagemagick-register-types)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (imagemagick-register-types))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq mail-user-agent 'mu4e-user-agent)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (require 'org-mu4e)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq mu4e-compose-complete-only-after nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq mu4e-maildir "~/Mail")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq mu4e-drafts-folder "/[Gmail].Drafts")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq mu4e-sent-folder   "/[Gmail].Sent Mail")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq mu4e-trash-folder  "/[Gmail].Trash")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq mu4e-sent-messages-behavior 'delete)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq mu4e-headers-skip-duplicates t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq mu4e-update-interval (* 60 20))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq message-kill-buffer-on-exit t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq mail-user-agent 'mu4e-user-agent) ;; make mu4e the default mail client
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; don't save message to Sent Messages, Gmail/IMAP takes care of this
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq mu4e-sent-messages-behavior 'delete)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; allow for updating mail using 'U' in the main view:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq mu4e-get-mail-command "timeout 60 offlineimap")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'mu4e-compose-mode-hook
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (defun my-do-compose-stuff () (flyspell-mode)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-to-list 'mu4e-headers-actions '("view in browser" . mu4e-action-view-in-browser))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-to-list 'mu4e-view-actions '("view in browser" . mu4e-action-view-in-browser))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun mu4e-view (msg headersbuf)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      "Display the message MSG in a new buffer, and keep in sync with HDRSBUF.
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 17:23:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  'In sync' here means that moving to the next/previous message in
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  the the message view affects HDRSBUF, as does marking etc.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  As a side-effect, a message that is being viewed loses its 'unread'
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  marking if it still had that."
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (let* ((embedded ;; is it as an embedded msg (ie. message/rfc822 att)?
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (when (gethash (mu4e-message-field msg :path)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                             mu4e~path-parent-docid-map) t))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             (buf
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (if embedded
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  (mu4e~view-embedded-winbuf)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                (get-buffer-create mu4e~view-buffer-name))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ;; note: mu4e~view-mark-as-read will pseudo-recursively call mu4e-view again
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ;; by triggering mu4e~view again as it marks the message as read
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (with-current-buffer buf
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (switch-to-buffer buf)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (setq mu4e~view-msg msg)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          ;;(or embedded (not (mu4e~view-mark-as-read msg)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (when (or (mu4e~view-mark-as-read msg) t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (let ((inhibit-read-only t))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (erase-buffer)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (mu4e~delete-all-overlays)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (insert (mu4e-view-message-text msg))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (goto-char (point-min))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (mu4e~fontify-cited)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (mu4e~fontify-signature)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (mu4e~view-make-urls-clickable)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (mu4e~view-show-images-maybe msg)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (setq
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               mu4e~view-buffer buf
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               mu4e~view-headers-buffer headersbuf)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (when embedded (local-set-key "q" 'kill-buffer-and-window))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (mu4e-view-mode))))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (require 'smtpmail)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; alternatively, for emacs-24 you can use:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq message-send-mail-function 'smtpmail-send-it
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          smtpmail-stream-type 'starttls
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          smtpmail-default-smtp-server "smtp.gmail.com"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          smtpmail-smtp-server "smtp.gmail.com"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          smtpmail-smtp-service 587)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 17:23:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  gmail-message-mode 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								This is useful with server mode when editing gmail messages. I think that it is not currently working, or it may need to be manually enabled.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 18:28:02 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package gmail-message-mode
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :mode ("\\.gmm\\'" . gmail-message-mode))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 18:28:02 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  ham-mode 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package ham-mode
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :commands ham-mode
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 18:28:02 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2017-08-21 19:24:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq ham-mode-html-to-markdown-command
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          '("pandoc" "--from" "html" "--to" "markdown" file))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  alert 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package alert
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer t
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2018-06-02 16:43:12 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq alert-default-style 'libnotify)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  sauron 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package sauron
							 
						 
					
						
							
								
									
										
										
										
											2018-04-28 01:58:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer 5
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands (sauron-start sauron-start-hidden)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :init
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (when (eq system-type 'darwin)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (setq sauron-modules '(sauron-erc sauron-org sauron-notifications
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                        sauron-twittering sauron-jabber sauron-identica))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (defun sauron-dbus-start ()
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 17:23:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        nil)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (makunbound 'dbus-path-emacs)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (sauron-start-hidden)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; This should really check (featurep 'dbus) but for some reason
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; this is always true even if support is not there.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq sauron-prio-sauron-started 2)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq sauron-min-priority 3)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; (setq sauron-dbus-cookie t) ;; linux only?
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq sauron-separate-frame nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq sauron-nick-insensitivity 1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun sauron:jabber-notify (origin priority message &optional properties)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (funcall notify-function "gtalk" message))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun sauron:erc-notify (origin priority message &optional properties)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (let ((event (plist-get properties :event)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (funcall notify-function "IRC" message)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun sauron:mu4e-notify (origin priority message &optional properties)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun sauron:dbus-notify (origin priority message &optional properties)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (funcall notify-function "GMail" message))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun sauron:dispatch-notify (origin priority message &optional properties)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (let ((handler (cond ((string= origin "erc") 'sauron:erc-notify)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           ((string= origin "jabber") 'sauron:jabber-notify)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           ((string= origin "mu4e") 'sauron:mu4e-notify)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           ((string= origin "dbus") 'sauron:dbus-notify)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           (t (lambda (&rest r) nil)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (funcall handler origin priority message properties)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ;; Prefering alert.el for now ;; (add-hook 'sauron-event-added-functions 'sauron:dispatch-notify)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (sauron-start-hidden)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'sauron-event-added-functions 'sauron-alert-el-adapter)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 17:23:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  screenshot 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package screenshot
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands screenshot)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  libmpdee 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package libmpdee
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :defer t)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  flyspell 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package flyspell
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t                           ; kind of annoying
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :preface (setq flyspell-issue-welcome-flag nil)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (diminish 'flyspell-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (bind-key "M-s" 'flyspell-correct-word-before-point flyspell-mode-map)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (unbind-key "C-;" flyspell-mode-map)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun flyspell-emacs-popup-textual (event poss word)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      "A textual flyspell popup menu."
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (let* ((corrects (if flyspell-sort-corrections
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           (sort (car (cdr (cdr poss))) 'string<)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         (car (cdr (cdr poss)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             (cor-menu (if (consp corrects)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           (mapcar (lambda (correct)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     (list correct correct))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                   corrects)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         '()))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             (affix (car (cdr (cdr (cdr poss)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             show-affix-info
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             (base-menu  (let ((save (if (and (consp affix) show-affix-info)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                         (list
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                          (list (concat "Save affix: "
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                                        (car affix))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                                'save)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                          '("Accept (session)" session)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                          '("Accept (buffer)" buffer))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                       '(("Save word" save)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                         ("Accept (session)" session)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                         ("Accept (buffer)" buffer)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           (if (consp cor-menu)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                               (append cor-menu (cons "" save))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                             save)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             (menu (mapcar
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    (lambda (arg) (if (consp arg) (car arg) arg))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    base-menu)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (cadr (assoc (popup-menu* menu :scroll-bar t) base-menu))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (fset 'flyspell-emacs-popup 'flyspell-emacs-popup-textual)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  web-mode 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package web-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode (("\\.tmpl\\'" . web-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("\\.cql\\'" . web-mode))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defvar-setq web-mode-content-types-alist
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      '(("gtl" . "\\.tmpl\\'")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ("gtl" . "\\.cql\\'")))))
							 
						 
					
						
							
								
									
										
										
										
											2014-12-03 14:38:14 -08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  perspective 
						 
					
						
							
								
									
										
										
										
											2016-06-27 01:18:25 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								I've disabled perspective because I just don't use it much.
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package perspective
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (persp-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun persp-get-perspectives-for-buffer (buffer)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      "Get the names of all of the perspectives of which `buffer` is a member."
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (cl-loop for perspective being the hash-value of perspectives-hash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               if (member buffer (persp-buffers perspective))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               collect (persp-name perspective)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun persp-pick-perspective-by-buffer (buffer)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      "Select a buffer and go to the perspective to which that buffer
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    belongs. If the buffer belongs to more than one perspective
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    completion will be used to pick the perspective to switch to.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Switch the focus to the window in which said buffer is displayed
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if such a window exists. Otherwise display the buffer in whatever
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    window is active in the perspective."
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      (interactive (list (funcall persp-interactive-completion-function
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                  "Buffer: " (mapcar 'buffer-name (buffer-list)))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (let* ((perspectives (persp-get-perspectives-for-buffer (get-buffer buffer)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             (perspective (if (> (length perspectives) 1)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              (funcall persp-interactive-completion-function
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                       (format "Select the perspective in which you would like to visit %s."
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                               buffer)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                       perspectives)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            (car perspectives))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (if (string= (persp-name persp-curr) perspective)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ;; This allows the opening of a single buffer in more than one window
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ;; in a single perspective.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (switch-to-buffer buffer)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (persp-switch perspective)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (if (get-buffer-window buffer)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                (set-frame-selected-window nil (get-buffer-window buffer))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              (switch-to-buffer buffer))))))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (defun persp-mode-switch-buffers (arg)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (interactive "P")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (if arg (call-interactively 'ido-switch-buffer)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (call-interactively 'persp-pick-perspective-by-buffer)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (define-key persp-mode-map (kbd "C-x b") 'persp-mode-switch-buffers))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :bind ("C-c 9" . persp-switch))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  android-mode 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package android-mode
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer t
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (require 's)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq android-mode-sdk-dir
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (s-trim (shell-command-to-string "android_sdk_directory")))))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  gradle-mode 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2017-09-08 15:35:52 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package gradle-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  groovy-mode 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This also adds syntax highlighting for gradle
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2021-08-21 19:07:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package groovy-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  jsx-mode 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package jsx-mode
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer t)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  css 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2018-04-28 01:58:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package css-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :mode (("\\.css\\'" . css-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         ("\\.rasi\\'" . css-mode)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  robe 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package robe
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands robe-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :init
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn (add-hook 'ruby-mode-hook 'robe-mode)))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  rinari 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package rinari
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :after ruby-mode)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  sgml-mode 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package sgml-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ;; :bind ("C-c b" . web-beautify-html) TODO: mode specific, change binding
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :commands sgml-mode)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  evil 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package evil :commands (evil-mode))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  hackernews 
						 
					
						
							
								
									
										
										
										
											2016-06-13 15:45:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package hackernews :commands hackernews)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-12 19:07:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 15:54:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  Appearance  
						 
					
						
							
								
									
										
										
										
											2016-10-02 08:15:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Basic Config 
						 
					
						
							
								
									
										
										
										
											2016-06-06 15:54:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(setq inhibit-startup-screen t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(blink-cursor-mode -1)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 15:54:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  Themes 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Ensure all themes that I use are installed:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-09-30 15:47:39 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package solarized-theme
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer t
							 
						 
					
						
							
								
									
										
										
										
											2016-09-30 15:47:39 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :init
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq solarized-high-contrast-mode-line t)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar-setq packages-appearance
							 
						 
					
						
							
								
									
										
										
										
											2017-09-05 15:43:41 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  '(monokai-theme zenburn-theme base16-theme molokai-theme moe-theme
							 
						 
					
						
							
								
									
										
										
										
											2017-01-11 11:42:07 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                  tango-2-theme gotham-theme sublime-themes rainbow-delimiters
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  waher-theme ample-theme material-theme zerodark-theme
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  color-theme-modern leuven-theme spacemacs-theme gruvbox-theme
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  forest-blue-theme flatland-theme afternoon-theme
							 
						 
					
						
							
								
									
										
										
										
											2023-06-29 04:43:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                  cyberpunk-theme))
							 
						 
					
						
							
								
									
										
										
										
											2014-12-06 21:46:36 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(mapcar 'straight-use-package packages-appearance)
							 
						 
					
						
							
								
									
										
										
										
											2017-07-25 11:40:33 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package doom-themes
							 
						 
					
						
							
								
									
										
										
										
											2017-08-23 16:04:38 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer t)
							 
						 
					
						
							
								
									
										
										
										
											2017-09-08 12:51:01 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package badwolf-theme)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 15:54:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 13:07:26 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  all-the-icons 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package all-the-icons
							 
						 
					
						
							
								
									
										
										
										
											2017-08-25 15:56:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :defer 5)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-18 13:07:26 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2019-06-23 13:52:27 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  doom-modeline 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+begin_src emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package doom-modeline
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :hook (after-init . doom-modeline-mode))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+end_src
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:23:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  page-break-lines 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(use-package page-break-lines
							 
						 
					
						
							
								
									
										
										
										
											2019-07-10 13:33:59 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :demand t
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:23:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :diminish (page-break-lines-mode)
							 
						 
					
						
							
								
									
										
										
										
											2017-08-26 14:13:35 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :commands page-break-lines-mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :init
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:23:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
									
										
										
										
											2016-11-07 15:44:00 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (add-to-list 'page-break-lines-modes 'prog-mode)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-24 16:23:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (global-page-break-lines-mode +1)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-06-16 13:00:18 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  window-number 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package window-number
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :defer t)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 15:54:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  Whitespace Setup 
						 
					
						
							
								
									
										
										
										
											2014-12-03 14:38:14 -08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 15:54:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Make whitespace-mode use just basic coloring:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(setq whitespace-style
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      '(spaces tabs newline space-mark tab-mark newline-mark))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 15:54:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2015-10-01 14:29:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 15:54:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Set the character used to represent spaces to ·, and the character used for tabs to be ▷.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(setq whitespace-display-mappings
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      '((space-mark 32 [183] [46])
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (tab-mark 9 [9655 9] [92 9])))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 15:54:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  Colorize Compliation Buffers 
						 
					
						
							
								
									
										
										
										
											2016-10-25 22:12:42 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								This automatically applies ansi-color interpretation of terminal escape
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								sequences to compilation buffers.
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 15:54:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-11-03 17:28:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:colorize-compilation-buffer ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (let ((was-read-only buffer-read-only))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (unwind-protect
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (when was-read-only
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            (read-only-mode -1))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (ansi-color-apply-on-region (point-min) (point-max)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (when was-read-only
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (read-only-mode +1)))))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-25 22:12:42 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-11-03 17:28:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(add-hook 'compilation-filter-hook 'imalison:colorize-compilation-buffer)
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 15:54:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 17:44:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Automatic Theme Changer 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Disabled for now
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 15:54:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(use-package theme-changer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :disabled t
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  :config
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (progn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (destructuring-bind (latitude longitude)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (imalison:get-lat-long)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (setq calendar-latitude latitude)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (setq calendar-longitude longitude))))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 17:44:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  Fix ~ansi-term~ Colors 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								For some reason, loading certain themes can cause colors in
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~ansi-term-color-vector~  to be undefined. The following code handles restoring 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								the original ~ansi-term-color-vector~  state. The code is exectued in a
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								load-theme hook (See the heading below).
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defvar imalison:ansi-term-color-vector ansi-term-color-vector)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 17:44:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:ansi-term-color-vector-broken? ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (--some (or (eq it 'unspecified) (not (symbolp it)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          (append ansi-term-color-vector nil)))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:restore-ansi-term-color-vector (&optional force)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (when (or force (imalison:ansi-term-color-vector-broken?))
							 
						 
					
						
							
								
									
										
										
										
											2016-12-28 23:28:40 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (setq ansi-term-color-vector imalison:ansi-term-color-vector)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (when (imalison:ansi-term-color-vector-broken?)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (message
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       "Oh no! ansi-term-color vector is super busted (check in custom)."))))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 17:44:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  After ~load-theme~ hook 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defvar imalison:light-theme 'solarized-light)
							 
						 
					
						
							
								
									
										
										
										
											2021-09-11 18:25:19 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar imalison:dark-theme 'gotham)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 17:44:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:after-load-theme (&rest _args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (when (fboundp 'powerline-reset)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (powerline-reset))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (set-face-background 'fringe (face-background 'default))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (imalison:restore-ansi-term-color-vector))
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 13:45:27 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(advice-add 'load-theme :after #'imalison:after-load-theme)
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 17:44:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 20:07:24 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**  Set Font 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(add-to-list 'default-frame-alist
							 
						 
					
						
							
								
									
										
										
										
											2023-04-21 11:19:45 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								             '(font . "Source Code Pro-10:weight=semi-bold:antialias=true"))
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 20:07:24 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**  imalison:appearance 
						 
					
						
							
								
									
										
										
										
											2016-10-03 17:44:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar imalison:linum-format)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 17:44:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:format-linum (line-text)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (propertize (format imalison:linum-format line-text) 'face 'linum))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(make-variable-buffer-local 'imalison:linum-format)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:linum-before-numbering-hook ()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (setq imalison:linum-format
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        (concat "%" (number-to-string
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                     (max (length
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           (number-to-string
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            (count-lines (point-min) (point-max)))) 3)) "d")))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(defun imalison:remove-fringe-and-hl-line-mode (&rest _stuff)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (interactive)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (if (fboundp 'scroll-bar-mode) (scroll-bar-mode -1))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (if (fboundp 'tool-bar-mode) (tool-bar-mode -1))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (if (fboundp 'menu-bar-mode) (menu-bar-mode -1))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (defvar-setq linum-format 'imalison:format-linum)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (add-hook 'linum-before-numbering-hook 'imalison:linum-before-numbering-hook)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (setq left-margin-width 0)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (defvar-setq hl-line-mode nil))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 20:07:24 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:appearance (&optional frame)
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 20:07:24 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (setq font-use-system-font nil)
							 
						 
					
						
							
								
									
										
										
										
											2016-09-03 17:07:39 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (interactive (list nil))
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 20:07:24 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  (imalison:remove-fringe-and-hl-line-mode)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (setq powerline-default-separator (random-choice '(butt slant wave))))
							 
						 
					
						
							
								
									
										
										
										
											2016-11-24 13:26:14 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								***  Hooks to set everything up 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 20:07:24 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defvar imalison:appearance-setup-done nil)
							 
						 
					
						
							
								
									
										
										
										
											2016-07-06 11:20:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 20:07:24 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(defun imalison:appearance-setup-hook (&rest args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (unless imalison:appearance-setup-done
							 
						 
					
						
							
								
									
										
										
										
											2017-01-26 16:57:40 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (unless (member imalison:dark-theme custom-enabled-themes)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      (load-theme imalison:dark-theme t))
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 20:07:24 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    (apply 'imalison:appearance args)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq imalison:default-font-size-pt (face-attribute 'default :height))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (setq imalison:appearance-setup-done t)))
							 
						 
					
						
							
								
									
										
										
										
											2016-11-30 15:20:05 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-12-29 20:07:24 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(if (daemonp)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    (add-hook 'after-make-frame-functions 'imalison:appearance-setup-hook)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  (add-hook 'after-init-hook 'imalison:appearance-setup-hook))
							 
						 
					
						
							
								
									
										
										
										
											2016-06-06 15:54:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 17:44:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  Post Init Custom  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#+BEGIN_SRC emacs-lisp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								(when (file-exists-p custom-after-file) (load custom-after-file))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-05 04:28:19 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								(when (file-exists-p machine-custom) (load machine-custom))
							 
						 
					
						
							
								
									
										
										
										
											2016-10-03 17:44:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#+END_SRC