Browse Source

Fix tab/space issue; Org-roam Insert Template; SF Login; Dired Links;

Emmet-Mode; Org-bullets Formatting; SFDX transient; SFDX Improved output;
master
Levi Olson 4 years ago
parent
commit
c29bdbf2fc
7 changed files with 167 additions and 35 deletions
  1. +11
    -6
      lisp/04-custom-init.el
  2. +60
    -5
      lisp/05-custom-functions.el
  3. +1
    -0
      lisp/07_5-custom-created-packages.el
  4. +30
    -11
      lisp/08-custom-packages.el
  5. +2
    -2
      lisp/custom/convert-to-table.el
  6. +17
    -0
      lisp/custom/ol-dired.el
  7. +46
    -11
      lisp/custom/sfdx.el

+ 11
- 6
lisp/04-custom-init.el View File

@ -8,7 +8,7 @@
(defvar autosave-dir (expand-file-name "~/.emacs.d/autosave/") "Set the default location of autosaves.")
(cond ((member "PragmataPro Liga" (font-family-list))
(set-face-attribute 'default nil :font "PragmataPro Liga-14")))
(set-face-attribute 'default nil :font "PragmataPro Liga-16")))
(setq initial-scratch-message nil
backup-directory-alist (list (cons ".*" backup-dir))
@ -39,8 +39,13 @@
(global-subword-mode 1)
;; Indent w/spaces only
(setq indent-tabs-mode nil)
(setq-default indent-tabs-mode nil)
(setq indent-tabs-mode nil
tab-width 4)
(setq-default indent-tabs-mode nil
tab-width 4)
;; This will expand 4 8 12 16 ... 200
(setq tab-stop-list (number-sequence 4 200 4))
;; Prevent stale elisp bytecode
(setq load-prefer-newer t)
;; Add newline on save
@ -53,7 +58,7 @@
;; Paste at current point, not mouse location when "middle-clicking"
(setq mouse-yank-at-point t)
(add-hook 'before-save-hook 'delete-trailing-whitespace)
(add-hook 'prog-mode-hook (lambda() (add-hook 'before-save-hook #'delete-trailing-whitespace t t)))
;; Set auth source
;; (setq auth-sources '("~/.authinfo.gpg"))
@ -61,8 +66,8 @@
;; Set window location/size
(if (eq system-type 'darwin)
(progn
(set-frame-position (selected-frame) 950 906)
(set-frame-height (selected-frame) 60)
(set-frame-position (selected-frame) 811 816)
(set-frame-height (selected-frame) 55)
(set-frame-width (selected-frame) 220))
(message "Don't configure location for other OSes"))

+ 60
- 5
lisp/05-custom-functions.el View File

@ -114,16 +114,32 @@
"Insert boilerplate into newly create roam note."
(interactive)
(let ((title (leo/org-global-prop-value "TITLE"))
(setupfile (leo/org-global-prop-value "SETUPFILE"))
(startup (leo/org-global-prop-value "STARTUP")))
(when (not startup)
;; If we have neither SETUPFILE nor STARTUP
(when (and title
(not setupfile)
(not startup))
(kill-region (point-min) (point-max))
(goto-char (point-min))
(insert (format "#+TITLE: %s\n" title))
(insert "#+STARTUP: showall\n")
(insert (format "#+TITLE: %s\n" title))
(insert "#+SETUPFILE: setup.org\n")
(insert "\n")
(insert "* Metadata:\n")
(insert "** Tags: ")
(goto-char (point-max)))))
(goto-char (point-max)))
;; If we only have STARTUP
(when (and title
startup
(not setupfile))
(goto-char (point-min))
(search-forward "STARTUP")
(beginning-of-line)
(kill-line)
(insert "#+SETUPFILE: setup.org")
(message "Updated Global Properties"))
))
(defun leo/org-narrow-prev-tree ()
"When in a narrowed region, this will take you to the previous heading and narrow."
@ -167,6 +183,45 @@
(message "Presenting")
))
(defun leo/org-roam-reformat-tags ()
"Search for Tags: in document and replace the old single-line format with a newline separated list."
(interactive)
(save-excursion
(goto-char (point-min))
(if (re-search-forward "Tags:")
(progn
(replace-regexp "Tags: \\[" "Tags:\n- [" nil (point-at-bol) (point-at-eol))
(replace-regexp "\\] \\[" "] \n- [" nil (point-at-bol) (point-at-eol))
(message "Tags formatted!")
)
(message "Tags not found, format aborted")
)))
(defun leo/org-table-slurp ()
"Slurp a line below the table into current cell."
(interactive)
(save-excursion
(forward-word)
(beginning-of-line)
(kill-line))
(yank))
(defun leo/auth-source-unfunc (secret)
"Unfurl the SECRET."
(if (functionp secret)
(funcall secret)
secret))
(defun leo/url-encode (str)
"Poor man's url-encode of STR."
(replace-regexp-in-string "@" '"%40" str nil t))
(defun leo/salesforce-login (un)
"Login to Salesforce with UN and password from auth-source."
(interactive)
(let ((secret (plist-get (nth 0 (auth-source-search :max 1 :user un)) :secret))
(host (plist-get (nth 0 (auth-source-search :max 1 :user un)) :host)))
(browse-url (concat "https://" host "/login.jsp?pw=" (leo/auth-source-unfunc secret) "&un=" (leo/url-encode un)))))
(provide '05-custom-functions)
(provide '05-custom-functions)
;;; 05-custom-functions.el ends here

+ 1
- 0
lisp/07_5-custom-created-packages.el View File

@ -6,6 +6,7 @@
(require 'sfdx)
(require 'convert-to-table)
(require 'ol-dired)
(provide '07_5-custom-created-packages)
;;; 07_5-custom-created-packages.el ends here

+ 30
- 11
lisp/08-custom-packages.el View File

@ -33,6 +33,9 @@
;;; Code:
(use-package use-package-ensure-system-package
:ensure t)
(use-package ag
:ensure t)
@ -346,7 +349,20 @@
;; http://web-mode.org/
(use-package web-mode
:ensure t
:mode "\\.html?\\'")
;; :mode (("\\.html?\\'" . web-mode)
;; ("\\.xml?\\'" . web-mode))
:hook (html-mode xml-mode)
)
;; https://github.com/smihica/emmet-mode
(use-package emmet-mode
:ensure t
:hook (sgml-mode html-mode web-mode css-mode))
(use-package dash-at-point
:if (eq system-type 'darwin)
:ensure-system-package
("/Applications/Dash.app" . "brew cask install dash"))
;; https://github.com/joshwnj/json-mode
(use-package json-mode
@ -412,6 +428,7 @@
(org-agenda-files :maxlevel . 3))
org-directory "~/Dropbox/Org"
org-default-notes-file (concat org-directory "/todo.org")
org-src-fontify-natively t
org-startup-folded t
org-startup-indented t
org-startup-align-all-tables t
@ -497,13 +514,14 @@
:commands org-bullets-mode
:hook (org-mode . org-bullets-mode)
:config
(set-face-attribute 'org-level-1 nil :height 1.3)
(set-face-attribute 'org-level-2 nil :height 1.15)
(set-face-attribute 'org-level-3 nil :height 1.1)
(set-face-attribute 'org-level-4 nil :height 1.08)
(set-face-attribute 'org-level-5 nil :height 1.05)
(set-face-attribute 'org-scheduled-today nil :height 1.0)
(set-face-attribute 'org-agenda-date-today nil :height 1.1))
(setq org-bullets-bullet-list '( "" "" "" "" "" "" ""))
(set-face-attribute 'org-level-1 nil :height 1.5)
(set-face-attribute 'org-level-2 nil :height 1.0)
(set-face-attribute 'org-level-3 nil :height 1.0)
(set-face-attribute 'org-level-4 nil :height 1.0)
(set-face-attribute 'org-level-5 nil :height 1.0)
(set-face-attribute 'org-scheduled-today nil :height 2.0)
(set-face-attribute 'org-agenda-date-today nil :height 2.0))
;; https://orgmode.org/worg/org-contrib/org-protocol.html
(use-package org-protocol
@ -595,9 +613,10 @@
("M-c" . capitalize-dwim)
("M-l" . downcase-dwim)
("M-<tab>" . sfdx/next-component-file)
("C-x C-l s p" . sfdx/create-project)
("C-x C-l s c" . sfdx/create-component)
("C-x C-l s d" . sfdx/deploy-component-or-project)
("C-x C-l s" . sfdx/transient-action)
;; ("C-x C-l s p" . sfdx/create-project)
;; ("C-x C-l s c" . sfdx/create-component)
;; ("C-x C-l s d" . sfdx/deploy-component-or-project)
)
;; https://github.com/nflath/sudo-edit

+ 2
- 2
lisp/custom/convert-to-table.el View File

@ -7,8 +7,8 @@
(defun leo/remove-excess-line-breaks (input)
"Remove excess line breaks from INPUT."
(let ((mylist (split-string input "\n")))
(setq mylist (remove-duplicates mylist :test 'string=))
(delete "" mylist)
;; (setq mylist (remove-duplicates mylist :test 'string=))
;; (delete "" mylist)
(string-join mylist "\n")
))

+ 17
- 0
lisp/custom/ol-dired.el View File

@ -0,0 +1,17 @@
;;; ol-dired.el --- Support for links to dired
;;; Commentary:
;;; Code:
(require 'ol)
(defcustom org-dired-command 'dired
"The Emacs command to be used to display a dired buffer."
:group 'org-link
:type '(dired))
(org-link-set-parameters "dired"
:follow org-dired-command)
(provide 'ol-dired)
;;; ol-dired.el ends here

+ 46
- 11
lisp/custom/sfdx.el View File

@ -4,6 +4,9 @@
;;; Code:
(require 'transient)
(defvar sfdx-create-css)
(setq-default sfdx-create-css t)
@ -58,13 +61,31 @@
(defun sfdx--deploy (component comp-name)
"Internal function to deploy COMP-NAME asyncronously or project if COMPONENT is nil after validations."
(let ((process "sfdx-deploy-output")
(cd-dir (locate-dominating-file buffer-file-name "force-app"))
(output-path (concat (locate-dominating-file buffer-file-name "force-app") "force-app/main/default"))
)
(let ((process "sfdx-deploy")
(buffer "*sfdx-output*")
(cd-dir (expand-file-name (locate-dominating-file buffer-file-name "force-app")))
(output-path (concat (locate-dominating-file buffer-file-name "force-app") "force-app/main/default")))
(if component
(async-start-process process "sh" (lambda (result) (message "Deploy Process Finished")) "-c" (concat "cd " cd-dir "; sfdx force:source:deploy --sourcepath force-app/main/default/lwc/" comp-name " --loglevel fatal"))
(async-start-process process "sh" (lambda (result) (message "Deploy Process Finished")) "-c" (concat "cd " cd-dir "; sfdx force:source:deploy --sourcepath force-app/main/default/ --loglevel fatal"))
(progn
(delete-other-windows)
(split-window-below 40)
(other-window 1)
(switch-to-buffer buffer)
(erase-buffer)
(local-set-key (kbd "q") 'delete-window)
(insert (format "Starting deployment of %s...\n" comp-name))
(start-process process buffer "sh" "-c" (concat "cd " cd-dir "; sfdx force:source:deploy --sourcepath ./force-app/main/default/lwc/" comp-name " --loglevel fatal"))
)
(progn
(delete-other-windows)
(split-window-below 40)
(other-window 1)
(switch-to-buffer buffer)
(erase-buffer)
(local-set-key (kbd "q") 'delete-window)
(insert "Starting deployment of project...\n")
(start-process process buffer "sh" "-c" (concat "cd " cd-dir "; sfdx force:source:deploy --sourcepath ./force-app/main/default/ --loglevel fatal"))
)
)
)
)
@ -81,10 +102,10 @@
(if (string= current-folder "lwc")
(prog1
;; Not in a component, deploy project.
(message "Deploying Project...")
(sfdx--deploy nil current-folder))
;; (message "Deploying Project...")
(sfdx--deploy nil current-folder))
;; In a component, deploy component.
(message "Deploying Component...")
;; (message "Deploying Component...")
(sfdx--deploy t current-folder)))
(prog1
@ -92,8 +113,8 @@
(if (locate-dominating-file buffer-file-name "force-app")
(prog1
;; In project, deploy project.
(message "Deploying Project...")
(sfdx--deploy nil current-folder))
;; (message "Deploying Project...")
(sfdx--deploy nil current-folder))
(prog1
;; Not in an SFDX project.
(message "You are not in a component folder or an SFDX project!"))
@ -103,5 +124,19 @@
)
)
(defun sfdx/retrieve-component ()
"Retrieve the source for the current component (destructively overwrites)."
(interactive)
(message "can't do that yet, i'm still learning"))
(define-transient-command sfdx/transient-action ()
"SFDX CLI Actions"
["Project Specific"
("P" "Create New Project" sfdx/create-project)]
["Component Level"
("c" "create new" sfdx/create-component)
("d" "deploy" sfdx/deploy-component-or-project)
("r" "retrieve" sfdx/retrieve-component)])
(provide 'sfdx)
;;; sfdx.el ends here

Loading…
Cancel
Save