HGGMS7P6BRIGWP6DZS3KLRXQPRETMB2GUULCQZAED6IYD5ENK2DQC W5P32Q4HUAIK2N2TYMRDYFGTOF6SD6OKBXGXSMIENEKBJY2K5RKAC RXCY7LD6ZRIOIKZEYKLMCYPMQPXF4DOEEFBDLVR2B22BXLZJFFBQC A3TVGLVHSVLMEHLHB3TPBSD3QGNVGX3DIK6BEBDTTHWBNW4ALMRAC DWJHLZWVL7RM2WQXN3ZJTJXXKUEUNQLL37TMMTPL7NL375M2QJCQC 7JB5ULZTC6SV7BBMZYTE3XUCGM5OKUQALOYFATCDZWVWNHTL6P7QC ODL5DR53CG3P5WJXH22CYRP2HDHT4BXK7ME3RGQYVXRH5EBEXU4QC Y4BZOKUVFF553HW77QK6AXMSII7VDE4BQFVETTFIZKLIZPUW2MKAC JN7KWJRJMW25JLL4VFNCJA4VJJVLTXPC5UICMCO6TSHOKKBJTVGQC 4WUPW3DVDVW4PIEGD6GX56NEKYDJZSJ5UNHOTKRO66FFKFLOQ3OQC MVGZ575CHTEYOYZJ22DZDSVSYWHW7U3BFUKSQIPDDQYWVASSUQLQC TGD23KBV2V7J7FFX7FDBENYMGDIOMS2JNOIZAYNXGQ52E4CQNJYAC ZUBUVNSQIZVWXMCHYK2JTKFUSPVXNWFNNZ75IWY7MZHLGYF42A3AC ZIZORUH6UNA67S6DRRGGCTSOCYENTHGODHJ5JP3UUPLIKGYU5UVAC IOVPOFAVXEQIZ7BCFVVAWFW3RYFXPK2GOILDWA6N6QHQHLAJ4XTAC XJLV3OIIPQ6V6YHJGFI7RRDYI5MXTXCXSVKPOZFUOGMV4B2DEJSQC 77GFHLOOX3JBBHHHSSR7TFOMOFUCIT5P6A7PQQOVNCZULXKMERMAC NWXFEA3LHLS5YE6BUVB2IXMIA6ARTVH5PU3FD4I4M5UCDYMC6INAC DZNNVEMP3EYFGAEFWMBSMPU55VQT7QVAVNNOG473CN3FAT4TTARQC NLKO2HJ55FV76MQCUCSJBSSZFI4NK6ROLQ323F2RDFDTLU5IFLDQC CQP5HB5FX2UYIDKYJ4DOF3J7QIM6466VLNO3IGY4CFVE5CKKFXQAC echo foobar
(require 'cl)(defun op--collect-args (body)(cl-flet ((walker (body &optional args)(if (null body)args(if (symbolp body)(when (eql ?\_ (elt (symbol-name body) 0))(cons body args))(if (listp body)(append (op--collect-args (car body))(op--collect-args (cdr body))))))))(sort (walker body)(lambda (a b)(< (string-to-number (subseq (symbol-name a) 1))(string-to-number (subseq (symbol-name b) 1)))))))(defmacro op (&rest body)`(lambda ,(op--collect-args body),@body))(defun blank-line-p ()(= (current-indentation)(- (line-end-position) (line-beginning-position))))(defun helm-generate-lisp-skeleton ()(interactive)(let ((skeletons '(("defunction" . skel-defun)("defmacro" . skel-defmacro)("defsystem" . skel-defsystem)("defpackage" . skel-defpackage)("defparameter" . skel-defparameter)("defvar" . skel-defvar))))(funcall (helm-comp-read "code template: " skeletons))(evil-insert 1)))(defun create-system-files ()(interactive)(mapcar (lambda (it) (save-buffer (find-file (format "%s.lisp" (cadr it)))))(getf (cddar (read-from-string(buffer-substring (point)(mark)))):components)))(defun slime-ecl ()(interactive)(let ((inferior-lisp-program "ecl"))(slime)))(defun slime-cmucl ()(interactive)(let ((inferior-lisp-program "cmucl"))(slime)))(defun slime-sbcl ()(interactive)(let ((inferior-lisp-program "sbcl"))(slime)))(defun slime-ccl ()(interactive)(let ((inferior-lisp-program "ccl"))(slime)))(defun find-use-clause (current-form)(when current-form(destructuring-bind (discriminator . packages) current-form(case discriminator(:use (remove-if (op (or (eql :cl _)))(cdr current-form)))(defpackage (find-use-clause(find-if (lambda (f)(and (listp f)(eql (car f) :use)))'(defpackage :tracking-sim (:use :cl :alexandria :serapeum) (:export)))))))))(defun load-package-uses ()(interactive)(slime-eval-async `(ql:quickload ',(find-use-clause (list-at-point)))))(defun paredit-wiggle-back ()(paredit-forward)(paredit-backward))(defmacro defparedit-wrapper (name invoked-wrapper)`(defun ,name ()(interactive)(paredit-wiggle-back)(,invoked-wrapper)))(defun set-exec-path-from-shell-PATH ()"Set up Emacs' `exec-path' and PATH environment variable to matchthat used by the user's shell.This is particularly useful under Mac OSX, where GUI apps are notstarted from a shell."(interactive)(let ((path-from-shell(replace-regexp-in-string "[ \t\n]*$" ""(shell-command-to-string"zsh -c 'source ~/.zsh.d/dependencies/utils.zsh;source ~/.zsh.d/dependencies/path-setup.zsh;echo $PATH'"))))(setenv "PATH" path-from-shell)(setq exec-path (split-string path-from-shell path-separator))))
;;; cjpad.el --- Skeletons for interacting with cjpad;; Copyright (C) 2017 Edward Langley;; Author: Edward Langley <fwoar@elangley.org>;; Keywords: cjpad;; Version: 0.0.1;; This program is free software; you can redistribute it and/or modify;; it under the terms of the GNU General Public License as published by;; the Free Software Foundation, either version 3 of the License, or;; (at your option) any later version.;; This program is distributed in the hope that it will be useful,;; but WITHOUT ANY WARRANTY; without even the implied warranty of;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the;; GNU General Public License for more details.;; You should have received a copy of the GNU General Public License;; along with this program. If not, see <http://www.gnu.org/licenses/>.;;; Commentary:;; Put a description of the package here;;; Code:;; code goes here(defun extract-pad-name (pad-url)(replace-regexp-in-string "^https?://cjpad.cj.com/\\([^/]+\\)/?$""\\1"pad-url))(defun get-pad-url (name)(format "http://cjpad.cj.com/ep/pad/export/%s/latest?format=txt"name))(defun convert-to-export (pad-url)(format "http://cjpad.cj.com/ep/pad/export/%s/latest?format=txt"(extract-pad-name pad-url)))(defvar *cjpad-exports* "~/cjpad-imports/")(defun get-cjpad (pad-name)(interactive "M")(let ((file-name (format "%s%s" *cjpad-exports* pad-name))(pad-url (get-pad-url pad-name)))(with-current-buffer (url-retrieve-synchronously (get-pad-url pad-name))(write-region nil nil file-name))(find-file file-name)))(defun import-cjpad (s e)(interactive "r")(message "=============================")(let* ((pad-url (buffer-substring s e)))(get-cjpad (extract-pad-name pad-url))(save-excursion(end-of-line)(insert " [" file-name "]")(message "foo")))(message "============================="))(defun update-cjpad-file (fn)(interactive "F")(message fn)(let* ((pad-name (file-name-base fn))(pad-url (get-pad-url pad-name))(file-name (format "%s%s" *cjpad-exports* pad-name)))(with-current-buffer (url-retrieve-synchronously pad-url)(write-region nil nil file-name))))(defun update-cjpad ()(interactive)(update-cjpad-file (buffer-file-name (current-buffer))))(defun browse-cjpad ()(interactive)(browse-url (format "http://cjpad.cj.com/%s"(file-name-base (buffer-file-name (current-buffer))))))(provide 'cjpad)
;;;; -*- mode: Emacs-Lisp;tab-width: 8;indent-tabs-mode: nil; -*-
;; -*- mode: Emacs-Lisp;tab-width: 8;indent-tabs-mode: nil; -*-(setq gc-cons-threshold 100000000)(message invocation-name)(setq inhibit-splash-screen t)(setq inhibit-startup-message t);;(let ((file-name-handler-alist nil))(add-hook 'after-init-hook(lambda ();; (require 'projectile);; (require 'evil-numbers)(unless (fboundp 'server-running-p)(require 'server))(unless (server-running-p)(server-start))(projectile-mode)(evil-mode)(paredit-mode);;(global-company-mode)(setq linum-format "%5d\u2502")(global-linum-mode)(set-exec-path-from-shell-PATH);; NOTE: this must be here...(slime-setup)(global-company-mode 1)
(define-key evil-insert-state-map (kbd "TAB") 'company-complete)
(define-key evil-insert-state-map (kbd "TAB") 'company-indent-or-complete-common)(evil-mode)
(use-package evil-numbers:ensure t:config(global-set-key (kbd "C-c +") 'evil-numbers/inc-at-pt)(global-set-key (kbd "C-c -") 'evil-numbers/dec-at-pt))
;;(use-package evil-numbers;; :ensure t;; :config;; (global-set-key (kbd "C-c +") 'evil-numbers/inc-at-pt);; (global-set-key (kbd "C-c -") 'evil-numbers/dec-at-pt))
(define-key evil-insert-state-map (kbd "C-c j") 'skeleton-next-position)(define-key evil-insert-state-map (kbd "C-c k") 'skeleton-prev-position)(define-key evil-normal-state-map " g" 'helm-generate-lisp-skeleton)(define-key evil-visual-state-map " g" 'helm-generate-lisp-skeleton))
(defun helm-generate-lisp-skeleton ()(interactive)(let ((skeletons '(("defunction" . skel-defun)("defmacro" . skel-defmacro)("defsystem" . skel-defsystem)("defpackage" . skel-defpackage)("defparameter" . skel-defparameter)("defvar" . skel-defvar))))(funcall (helm-comp-read "code template: " skeletons))(evil-insert 1)))(define-key evil-insert-state-map (kbd "C-c j") 'skeleton-next-position)(define-key evil-insert-state-map (kbd "C-c k") 'skeleton-prev-position)(define-key evil-normal-state-map " g" 'helm-generate-lisp-skeleton)(define-key evil-visual-state-map " g" 'helm-generate-lisp-skeleton))
(defun create-system-files ()(interactive)(mapcar (lambda (it) (save-buffer (find-file (format "%s.lisp" (cadr it)))))(getf (cddar (read-from-string(buffer-substring (point)(mark)))):components)))
(when (and (boundp 'common-lisp-hyperspec-root)(string-prefix-p "/" common-lisp-hyperspec-root))(setq common-lisp-hyperspec-root(concat "file://" common-lisp-hyperspec-root)))
(defun slime-cmucl ()(interactive)(let ((inferior-lisp-program "cmucl"))(slime)))
(add-hook 'lisp-mode-hook'(lambda ();;(define-key evil-insert-state-map "^N" 'slime-fuzzy-indent-and-complete-symbol)(unless (string= "*slime-scratch*" (buffer-name))(paredit-mode)(evil-paredit-mode))(rainbow-delimiters-mode)))(setq slime-contribs'(slime-fancyslime-companyslime-macrostepslime-trace-dialogslime-mdot-fu))
(defun slime-sbcl ()(interactive)(let ((inferior-lisp-program "sbcl"))(slime)))
(modify-syntax-entry ?- "w" lisp-mode-syntax-table)(modify-syntax-entry ?* "w" lisp-mode-syntax-table)(modify-syntax-entry ?+ "w" lisp-mode-syntax-table)(modify-syntax-entry ?! "w" lisp-mode-syntax-table)(modify-syntax-entry ?$ "w" lisp-mode-syntax-table)(modify-syntax-entry ?% "w" lisp-mode-syntax-table)(modify-syntax-entry ?& "w" lisp-mode-syntax-table)(modify-syntax-entry ?% "w" lisp-mode-syntax-table)(modify-syntax-entry ?= "w" lisp-mode-syntax-table)(modify-syntax-entry ?< "w" lisp-mode-syntax-table)(modify-syntax-entry ?> "w" lisp-mode-syntax-table);;(modify-syntax-entry ?@ "w" lisp-mode-syntax-table)
(defun slime-ccl ()(interactive)(let ((inferior-lisp-program "ccl"))(slime)))
(modify-syntax-entry ?^ "w" lisp-mode-syntax-table)(modify-syntax-entry ?_ "w" lisp-mode-syntax-table)(modify-syntax-entry ?~ "w" lisp-mode-syntax-table)(modify-syntax-entry ?. "w" lisp-mode-syntax-table)
(add-hook 'lisp-mode-hook'(lambda ();;(define-key evil-insert-state-map "^N" 'slime-fuzzy-indent-and-complete-symbol)(unless (string= "*slime-scratch*" (buffer-name))(paredit-mode)(evil-paredit-mode))(rainbow-delimiters-mode)))(setq slime-contribs'(slime-fancyslime-companyslime-macrostepslime-trace-dialogslime-mdot-fu)))(use-package slime-company:no-require t:defer t:ensure t)
))
;; (use-package jdee;; :ensure t)
(use-package css-eldoc :ensure t)(use-package ag :ensure t)(use-package rainbow-delimiters :ensure t)(use-package helm :ensure t)(use-package helm-projectile :ensure t)(use-package eldoc-eval :ensure t)(use-package csv-mode :ensure t)(use-package yaml-mode :ensure t)(use-package web-mode :ensure t)(use-package vue-mode :ensure t)(use-package scss-mode :ensure t)(use-package markdown-mode :ensure t)(use-package magit :ensure t :defer 2)(use-package highlight-parentheses :ensure t)(use-package helm-projectile :ensure t)(use-package helm-ls-git :ensure t)(use-package helm-css-scss :ensure t);;(use-package ac-js2 :ensure t);;(use-package helm-cider :ensure t :defer 5)(use-package helm-ag-r :ensure t)(use-package helm-ag :ensure t)(use-package project-explorer :ensure t)
(use-package css-eldoc:ensure t)(use-package ag:ensure t)(use-package evil-vimish-fold:ensure t:config(evil-vimish-fold-mode 1))(use-package zenburn-theme:ensure t)(use-package zeal-at-point:ensure t)(use-package rainbow-delimiters:ensure t)(use-package tabbar:ensure t)(use-package helm:ensure t)(use-package helm-projectile:ensure t)
(progn ; helm(require 'helm-config)(helm-mode)(global-set-key (kbd "C-x C-f") 'helm-find-files)(define-key evil-normal-state-map " f" 'helm-projectile)(define-key evil-normal-state-map " j" 'helm-buffers-list)(global-set-key (kbd "M-x") 'helm-M-x))
(use-package csv-mode:ensure t)(use-package color-theme:ensure t)(use-package ansible:ensure t)(use-package alect-themes:ensure t)(use-package ac-js2:ensure t)(use-package yaml-mode:ensure t)(use-package web-mode:ensure t)(use-package vue-mode:ensure t)(use-package typescript-mode:ensure t)(use-package scss-mode:ensure t)(use-package rust-mode:ensure t)(use-package markdown-mode:ensure t)(use-package magit:ensure t)(use-package highlight-parentheses:ensure t)(use-package helm-projectile:ensure t)(use-package helm-ls-git:ensure t);;(use-package helm-git;; :ensure t)(use-package helm-css-scss:ensure t)(use-package helm-cider:ensure t)
(use-package helm-ag-r:ensure t)(use-package helm-ag:ensure t)(use-package emmet-mode:ensure t:config(define-key evil-insert-state-map (kbd "C-c ,") 'emmet-expand-line))(use-package project-explorer:ensure t)(use-package ggtags:ensure t:config(ggtags-mode 1)(add-hook 'c-mode-common-hook(lambda ()(when (derived-mode-p 'c-mode 'c++-mode 'java-mode 'asm-mode)(ggtags-mode 1)))))(use-package pollen-mode:config(defun insert-lozenge ()(interactive)(insert-char 9674))(define-key evil-insert-state-map (kbd "C-c C-l") 'insert-lozenge))(progn ; helm(require 'helm-config)(helm-mode)(global-set-key (kbd "C-x C-f") 'helm-find-files)(define-key evil-normal-state-map " f" 'helm-projectile)(define-key evil-normal-state-map " j" 'helm-buffers-list)(global-set-key (kbd "M-x") 'helm-M-x))(require 'js2-mode)(require 'projectile)(projectile-mode)(add-hook 'after-init-hook(lambda ()(unless (server-running-p)(server-start))(evil-mode)(paredit-mode)(global-company-mode)(global-linum-mode)))(progn ; linum(setq linum-format "%5d\u2502"))(require 'evil-numbers)
(define-key evil-normal-state-map ",zz" 'zeal-at-point)(modify-syntax-entry ?_ "w" js-mode-syntax-table)(modify-syntax-entry ?- "w" lisp-mode-syntax-table)(modify-syntax-entry ?* "w" lisp-mode-syntax-table)(modify-syntax-entry ?+ "w" lisp-mode-syntax-table)(modify-syntax-entry ?! "w" lisp-mode-syntax-table)(modify-syntax-entry ?$ "w" lisp-mode-syntax-table)(modify-syntax-entry ?% "w" lisp-mode-syntax-table)(modify-syntax-entry ?& "w" lisp-mode-syntax-table)(modify-syntax-entry ?% "w" lisp-mode-syntax-table)(modify-syntax-entry ?= "w" lisp-mode-syntax-table)(modify-syntax-entry ?< "w" lisp-mode-syntax-table)(modify-syntax-entry ?> "w" lisp-mode-syntax-table)(modify-syntax-entry ?@ "w" lisp-mode-syntax-table)(modify-syntax-entry ?[ "w" lisp-mode-syntax-table)(modify-syntax-entry ?] "w" lisp-mode-syntax-table)(modify-syntax-entry ?^ "w" lisp-mode-syntax-table)(modify-syntax-entry ?_ "w" lisp-mode-syntax-table)(modify-syntax-entry ?~ "w" lisp-mode-syntax-table)(modify-syntax-entry ?{ "w" lisp-mode-syntax-table)(modify-syntax-entry ?} "w" lisp-mode-syntax-table)(modify-syntax-entry ?. "w" lisp-mode-syntax-table)
;;(modify-syntax-entry ?_ "w" js-mode-syntax-table)
(let ((default-directory "~/.emacs.d/lisp/"))(make-directory default-directory t)(normal-top-level-add-subdirs-to-load-path))(setq erc-hide-list '("JOIN" "PART" "QUIT"));; (defun znc-erc ();; (interactive);; (erc-ssl :server "localhost" :port 6697 :nick "edwlan/freenode" :password "t31ch3rtb"))(add-to-list 'auto-mode-alist '("\\.cljs\\.hl\\'" . clojurescript-mode))(add-hook 'ruby-mode-hook'(lambda ()(eldoc-mode)(robe-mode)))(add-hook 'clojure-mode-hook'(lambda ();; Hoplon functions and macros(paredit-mode)(define-key evil-insert-state-map "^N" 'helm-cider-apropos)(dolist (pair '((page . 'defun)(loop-tpl . 'defun)(if-tpl . '1)(for-tpl . '1)(case-tpl . '1)(cond-tpl . 'defun)))(put-clojure-indent (car pair)(car (last pair))))))(setq tls-program '("openssl s_client -connect %h:%p -no_ssl2 -ign_eof"))(global-auto-revert-mode t);;; Use auto-complete for ensime(defun scala/enable-eldoc ()"Show error message or type name at point by Eldoc."(setq-local eldoc-documentation-function#'(lambda ()(when (ensime-connected-p)(let ((err (ensime-print-errors-at-point)))(or (and err (not (string= err "")) err)(ensime-print-type-at-point))))))(eldoc-mode +1))(defun scala/completing-dot-company ()(cond (company-backend(company-complete-selection)(scala/completing-dot))(t(insert ".")(company-complete))))(defun scala/completing-dot-ac ()(insert ".")(ac-trigger-key-command t))
(defun scala/completing-dot ()"Insert a period and show company completions."(interactive "*")(eval-and-compile (require 'ensime))(eval-and-compile (require 's))(when (s-matches? (rx (+ (not space)))(buffer-substring (line-beginning-position) (point)))(delete-horizontal-space t))(cond ((not (and (ensime-connected-p) ensime-completion-style))(insert "."))((eq ensime-completion-style 'company)(scala/completing-dot-company))((eq ensime-completion-style 'auto-complete)(scala/completing-dot-ac))));; Initialization(add-hook 'ensime-mode-hook #'scala/enable-eldoc)(add-hook 'scala-mode-hook 'ensime-scala-mode-hook)(add-hook 'scala-mode-hook 'flycheck-mode)(add-hook 'haskell-mode-hook 'intero-mode)(add-hook 'c-mode-common-hook(lambda ()(when (derived-mode-p 'c-mode 'c++-mode 'java-mode)(semantic-mode 1)(global-semanticdb-minor-mode 1)(global-semantic-idle-scheduler-mode 1)(global-semantic-stickyfunc-mode 1)(helm-gtags-mode)(ggtags-mode 1))))(setq company-backends (delete 'company-semantic company-backends))(defun alexott/cedet-hook ()(local-set-key "\C-c\C-j" 'semantic-ia-fast-jump)(local-set-key "\C-c\C-s" 'semantic-ia-show-summary))(add-hook 'c-mode-common-hook 'alexott/cedet-hook)(add-hook 'c-mode-hook 'alexott/cedet-hook)(add-hook 'c++-mode-hook 'alexott/cedet-hook)(defun set-exec-path-from-shell-PATH ()"Set up Emacs' `exec-path' and PATH environment variable to match that used by the user's shell.This is particularly useful under Mac OSX, where GUI apps are not started from a shell."(interactive)(let ((path-from-shell (replace-regexp-in-string "[ \t\n]*$" "" (shell-command-to-string "$SHELL --login -i -c 'echo $PATH'"))))(setenv "PATH" path-from-shell)(setq exec-path (split-string path-from-shell path-separator))))(set-exec-path-from-shell-PATH)(require 'ede)(global-ede-mode)
(setq fwoar.is-ordinary (not (string= invocation-name "EmacsNotes")))(unless fwoar.is-ordinary(setq with-editor-emacsclient-executable "/usr/local/bin/emacsclient")(require 'cjpad)(find-file "~/notes.org"))
(require 'cl)(defun op--collect-args (body)(cl-flet ((walker (body &optional args)(if (null body)args(if (symbolp body)(when (eql ?\_ (elt (symbol-name body) 0))(cons body args))(if (listp body)(append (op--collect-args (car body))(op--collect-args (cdr body))))))))(sort (walker body)(lambda (a b)(< (string-to-number (subseq (symbol-name a) 1))(string-to-number (subseq (symbol-name b) 1)))))))(defmacro op (&rest body)`(lambda ,(op--collect-args body),@body))(defun blank-line-p ()(= (current-indentation)(- (line-end-position) (line-beginning-position))))(defun helm-generate-lisp-skeleton ()(interactive)(let ((skeletons '(("defunction" . skel-defun)("defmacro" . skel-defmacro)("defsystem" . skel-defsystem)("defpackage" . skel-defpackage)("defparameter" . skel-defparameter)("defvar" . skel-defvar))))(funcall (helm-comp-read "code template: " skeletons))(evil-insert 1)))(defun create-system-files ()(interactive)(mapcar (lambda (it) (save-buffer (find-file (format "%s.lisp" (cadr it)))))(getf (cddar (read-from-string(buffer-substring (point)(mark)))):components)))(defun slime-ecl ()(interactive)(let ((inferior-lisp-program "ecl"))(slime)))(defun slime-cmucl ()(interactive)(let ((inferior-lisp-program "cmucl"))(slime)))(defun slime-sbcl ()(interactive)(let ((inferior-lisp-program "sbcl"))(slime)))(defun slime-ccl ()(interactive)(let ((inferior-lisp-program "ccl"))(slime)))(defun find-use-clause (current-form)(when current-form(destructuring-bind (discriminator . packages) current-form(case discriminator(:use (remove-if (op (or (eql :cl _)))(cdr current-form)))(defpackage (find-use-clause(find-if (lambda (f)(and (listp f)(eql (car f) :use)))'(defpackage :tracking-sim (:use :cl :alexandria :serapeum) (:export)))))))))(defun load-package-uses ()(interactive)(slime-eval-async `(ql:quickload ',(find-use-clause (list-at-point)))))(defun paredit-wiggle-back ()(paredit-forward)(paredit-backward))(defmacro defparedit-wrapper (name invoked-wrapper)`(defun ,name ()(interactive)(paredit-wiggle-back)(,invoked-wrapper)))(defun set-exec-path-from-shell-PATH ()"Set up Emacs' `exec-path' and PATH environment variable to matchthat used by the user's shell.This is particularly useful under Mac OSX, where GUI apps are notstarted from a shell."(interactive)(let ((path-from-shell(replace-regexp-in-string "[ \t\n]*$" ""(shell-command-to-string"zsh -c 'source ~/.zsh.d/dependencies/utils.zsh;source ~/.zsh.d/dependencies/path-setup.zsh;echo $PATH'"))))(setenv "PATH" path-from-shell)(setq exec-path (split-string path-from-shell path-separator))))
;;; cjpad.el --- Skeletons for interacting with cjpad;; Copyright (C) 2017 Edward Langley;; Author: Edward Langley <fwoar@elangley.org>;; Keywords: cjpad;; Version: 0.0.1;; This program is free software; you can redistribute it and/or modify;; it under the terms of the GNU General Public License as published by;; the Free Software Foundation, either version 3 of the License, or;; (at your option) any later version.;; This program is distributed in the hope that it will be useful,;; but WITHOUT ANY WARRANTY; without even the implied warranty of;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the;; GNU General Public License for more details.;; You should have received a copy of the GNU General Public License;; along with this program. If not, see <http://www.gnu.org/licenses/>.;;; Commentary:;; Put a description of the package here;;; Code:;; code goes here(defun extract-pad-name (pad-url)(replace-regexp-in-string "^https?://cjpad.cj.com/\\([^/]+\\)/?$""\\1"pad-url))(defun get-pad-url (name)(format "http://cjpad.cj.com/ep/pad/export/%s/latest?format=txt"name))(defun convert-to-export (pad-url)(format "http://cjpad.cj.com/ep/pad/export/%s/latest?format=txt"(extract-pad-name pad-url)))(defvar *cjpad-exports* "~/cjpad-imports/")(defun get-cjpad (pad-name)(interactive "M")(let ((file-name (format "%s%s" *cjpad-exports* pad-name))(pad-url (get-pad-url pad-name)))(with-current-buffer (url-retrieve-synchronously (get-pad-url pad-name))(write-region nil nil file-name))(find-file file-name)))(defun import-cjpad (s e)(interactive "r")(message "=============================")(let* ((pad-url (buffer-substring s e)))(get-cjpad (extract-pad-name pad-url))(save-excursion(end-of-line)(insert " [" file-name "]")(message "foo")))(message "============================="))(defun update-cjpad-file (fn)(interactive "F")(message fn)(let* ((pad-name (file-name-base fn))(pad-url (get-pad-url pad-name))(file-name (format "%s%s" *cjpad-exports* pad-name)))(with-current-buffer (url-retrieve-synchronously pad-url)(write-region nil nil file-name))))(defun update-cjpad ()(interactive)(update-cjpad-file (buffer-file-name (current-buffer))))(defun browse-cjpad ()(interactive)(browse-url (format "http://cjpad.cj.com/%s"(file-name-base (buffer-file-name (current-buffer))))))(provide 'cjpad)