diff options
Diffstat (limited to 'tw/home/files/emacs-packages')
-rw-r--r-- | tw/home/files/emacs-packages/actionlint.el | 147 | ||||
-rw-r--r-- | tw/home/files/emacs-packages/alidist-mode.el | 170 | ||||
-rw-r--r-- | tw/home/files/emacs-packages/bemscript-mode.el | 92 | ||||
-rw-r--r-- | tw/home/files/emacs-packages/environmentd-mode.el | 46 | ||||
-rw-r--r-- | tw/home/files/emacs-packages/flymake-guile.el | 123 | ||||
-rw-r--r-- | tw/home/files/emacs-packages/ifm-mode.el | 18 | ||||
-rw-r--r-- | tw/home/files/emacs-packages/pam-env-mode.el | 45 | ||||
-rw-r--r-- | tw/home/files/emacs-packages/vcard-mode.el | 56 |
8 files changed, 0 insertions, 697 deletions
diff --git a/tw/home/files/emacs-packages/actionlint.el b/tw/home/files/emacs-packages/actionlint.el deleted file mode 100644 index 68a25c57..00000000 --- a/tw/home/files/emacs-packages/actionlint.el +++ /dev/null @@ -1,147 +0,0 @@ -;;; actionlint.el --- Flycheck checker for GitHub Actions. -*- lexical-binding: t -*- -;;; Commentary: -;; GitHub Actions are defined using mostly plain YAML files. -;; Actionlint is a linter catching GitHub Action-specific mistakes, and also -;; checks Shell and Python code embedded in Actions (using shellcheck and -;; pyflakes, respectively). -;;; Code: - -(require 'custom) -(require 'flymake) - -(defgroup actionlint nil - "Actionlint-related options." - :group 'languages - :prefix "actionlint-") - -(defcustom actionlint-executable "actionlint" - "The alidistlint executable to use. This will be looked up in $PATH." - :type '(string) - :risky t - :group 'actionlint) - -(defvar actionlint--message-regexp - (rx bol "<stdin>:" ; filename - (group-n 2 (+ digit)) ":" ; line - (group-n 3 (+ digit)) ": " ; column - (? (or (seq "pyflakes reported issue in this script: " - (group-n 4 (+ digit)) ":" ; inner line - (group-n 5 (+ digit)) " ") ; inner column - (seq "shellcheck reported issue in this script: " - (group-n 8 "SC" (+ digit)) ":" ; shellcheck code - (group-n 6 (or "info" "warning" "error")) ":" ; type - (group-n 4 (+ digit)) ":" ; inner line - (group-n 5 (+ digit)) ": "))) ; inner column - (group-n 1 (+? not-newline)) " " ; message - "[" (group-n 7 (+ (not ?\]))) "]" eol) ; backend/error name - "Regular expression matching messages reported by actionlint. - -The following convention for match groups is used: - - 1. free-form message - 2. outer line number - 3. outer column number - 4. (optional) inner line number - 5. (optional) inner column number - 6. (optional) error level/type - 7. backend/error name (e.g. syntax-check or pyflakes) - 8. (optional) backend-specific error code - -The outer line/column numbers are always present and refer to the location of -the key where the error is, normally. If the message was passed through from -another linter (e.g. shellcheck), it may have an inner line/column, which will -be relative to the contents of the key instead.") - -(defun actionlint--next-message (source) - "Return the next message according to REGEXP for buffer SOURCE, if any." - (when-let* ((match (search-forward-regexp actionlint--message-regexp nil t)) - (inner-line (if-let ((match (match-string 4))) - ;; 1-based; don't subtract 1 since we assume - ;; that the script actually starts on the next - ;; line. - (string-to-number match) - 0)) - (inner-column (if-let ((match (match-string 5))) - ;; 1-based; add 1 (assuming 2-space indents) - ;; to pick the right place inside the string. - (1+ (string-to-number match)) - 0)) - (region (flymake-diag-region - source - (+ (string-to-number (match-string 2)) inner-line) - (+ (string-to-number (match-string 3)) inner-column))) - (type (pcase (match-string 6) - ("info" :note) - ("warning" :warning) - ("error" :error) - ('nil :error))) - (message (if-let ((code (match-string 8))) - (concat (match-string 1) " (" (match-string 7) " " code ")") - (concat (match-string 1) " (" (match-string 7) ")")))) - (flymake-make-diagnostic source (car region) (cdr region) type message))) - -(defvar-local actionlint--flymake-proc nil - "The latest invocation of actionlint.") - -;; See info node: (flymake)An annotated example backend. -(defun actionlint-flymake (report-fn &rest _args) - "Run actionlint and report diagnostics from it using REPORT-FN. -Any running invocations are killed before running another one." - (unless (executable-find actionlint-executable) - (funcall report-fn :panic - :explanation "Cannot find `actionlint-executable' program") - (error "Cannot find actionlint executable")) - - ;; Kill previous check, if it's still running. - (when (process-live-p actionlint--flymake-proc) - (kill-process actionlint--flymake-proc)) - - ;; This needs `lexical-binding'. - (let ((source (current-buffer))) - (save-restriction - (widen) - (setq actionlint--flymake-proc - (make-process - :name "actionlint-flymake" :noquery t :connection-type 'pipe - ;; Direct output to a temporary buffer. - :buffer (generate-new-buffer " *actionlint-flymake*") - :command (list actionlint-executable "-oneline" "-no-color" "-") - :sentinel - (lambda (proc _event) - "Parse diagnostic messages once the process PROC has exited." - ;; Check the process has actually exited, not just been suspended. - (when (memq (process-status proc) '(exit signal)) - (unwind-protect - ;; Only proceed if we've got the "latest" process. - (if (with-current-buffer source (eq proc actionlint--flymake-proc)) - (with-current-buffer (process-buffer proc) - (goto-char (point-min)) - (cl-do (diags - (msg (actionlint--next-message source) - (actionlint--next-message source))) - ((null msg) - (funcall report-fn diags)) - (push msg diags))) - (flymake-log :warning "Canceling obsolete check %s" proc)) - ;; Clean up temporary buffer. - (kill-buffer (process-buffer proc))))))) - ;; Send the buffer to actionlint on stdin. - (process-send-region actionlint--flymake-proc (point-min) (point-max)) - (process-send-eof actionlint--flymake-proc)))) - -(defun actionlint-github-workflow-p () - "Does the current buffer contain a GitHub Action?" - (let ((name (buffer-file-name))) - (and name (string-match-p - (rx ".github/workflows/" (+ (not ?\/)) ".yml" eos) name)))) - -(defun actionlint-setup () - "Set up actionlint in this buffer, if it is recognised as a workflow file." - (when (actionlint-github-workflow-p) - (add-hook 'flymake-diagnostic-functions #'actionlint-flymake nil t))) - -(add-hook 'yaml-mode-hook #'actionlint-setup) -(add-hook 'yaml-ts-mode-hook #'actionlint-setup) - -(provide 'actionlint) -;;; actionlint.el ends here diff --git a/tw/home/files/emacs-packages/alidist-mode.el b/tw/home/files/emacs-packages/alidist-mode.el deleted file mode 100644 index fbcef7e5..00000000 --- a/tw/home/files/emacs-packages/alidist-mode.el +++ /dev/null @@ -1,170 +0,0 @@ -;;; alidist-mode.el --- Major mode for alidist recipes -*- lexical-binding: t -*- -;;; Commentary: -;;; alidist recipes are shell scripts with a YAML header in front. We -;;; want both these parts highlighted properly, and to lint the whole -;;; thing with a custom script that glues together yamllint and -;;; shellcheck with a few custom checks. -;;; Code: - -(require 'custom) -(require 'flymake) -(require 'mmm-mode) -(require 'mmm-cmds) -(require 'mmm-vars) -(require 'sh-script) -(require 'yaml-mode) - -(defgroup alidist-mode nil - "Alidist-related options." - :group 'languages - :prefix "alidist-mode-") - -(defcustom alidist-mode-alidistlint-executable "alidistlint" - "The alidistlint executable to use. This will be looked up in $PATH." - :type '(string) - :risky t - :group 'alidist-mode) - -(defvar alidist-mode--message-regexp - (rx bol "<stdin>:" ; filename - (group (+ digit)) ":" ; line - (group (+ digit)) ": " ; column - (group (or "note" "warning" "error")) ": " ; type - (group (+ not-newline)) eol) ; message - "Regular expression matching messages from alidistlint. -`alidist-flymake' expects the following capturing groups in this -regexp: (1) line number; (2) column number; (3) error type; (4) -message.") - -(defvar-local alidist-mode--flymake-proc nil - "The latest invocation of alidistlint.") - -;; See info node: (flymake)An annotated example backend. -(defun alidist-flymake (report-fn &rest _args) - "Run alidistlint and report diagnostics from it using REPORT-FN. -Any running invocations are killed before running another one." - (unless (executable-find alidist-mode-alidistlint-executable) - (funcall report-fn :panic - :explanation "Cannot find `alidist-mode-alidistlint-executable' program") - (error "Cannot find alidistlint executable")) - - ;; Kill previous check, if it's still running. - (when (process-live-p alidist-mode--flymake-proc) - (kill-process alidist-mode--flymake-proc)) - - ;; This needs `lexical-binding'. - (let ((source (current-buffer))) - (save-restriction - (widen) - (setq alidist-mode--flymake-proc - (make-process - :name "alidistlint-flymake" :noquery t :connection-type 'pipe - ;; Direct output to a temporary buffer. - :buffer (generate-new-buffer " *alidistlint-flymake*") - :command (list alidist-mode-alidistlint-executable "-f" "gcc" "-") - :sentinel - (lambda (proc _event) - "Parse diagnostic messages once the process PROC has exited." - ;; Check the process has actually exited, not just been suspended. - (when (memq (process-status proc) '(exit signal)) - (unwind-protect - ;; Only proceed if we've got the "latest" process. - (if (with-current-buffer source (eq proc alidist-mode--flymake-proc)) - (with-current-buffer (process-buffer proc) - (goto-char (point-min)) - (cl-loop - while (search-forward-regexp alidist-mode--message-regexp nil t) - for (beg . end) = (flymake-diag-region - source - (string-to-number (match-string 1)) - (string-to-number (match-string 2))) - for type = (pcase (match-string 3) - ("note" :note) - ("warning" :warning) - ("error" :error) - (type (error "Unknown alidistlint error type %s" type))) - collect (flymake-make-diagnostic source beg end type (match-string 4)) - into diags - finally (funcall report-fn diags))) - (flymake-log :warning "Canceling obsolete check %s" proc)) - ;; Clean up temporary buffer. - (kill-buffer (process-buffer proc))))))) - ;; Send the buffer to alidistlint on stdin. - (process-send-region alidist-mode--flymake-proc (point-min) (point-max)) - (process-send-eof alidist-mode--flymake-proc)))) - -(defvar-local alidist-mode--mmm-refresh-timer nil - "An idle timer for the current buffer, to make `mmm-mode' reparse it.") -(put 'alidist-mode--mmm-refresh-timer 'risky-local-variable t) - -(defun alidist-mode--cancel-refresh-timer () - "Cancel and delete the timer that reparses the buffer. -It is stored in `alidist-mode--mmm-refresh-timer'." - (when alidist-mode--mmm-refresh-timer - (cancel-timer alidist-mode--mmm-refresh-timer) - (setq alidist-mode--mmm-refresh-timer nil))) - -(define-derived-mode alidist-mode yaml-mode "alidist" - "An outer mode for alidist recipes, handling the metadata." - (mmm-mode) - ;; `mmm-mode' doesn't refresh its submodes when the buffer changes - ;; (e.g. when a *_recipe key is added to the YAML header), so - ;; refresh manually when idle. - (alidist-mode--cancel-refresh-timer) - (add-hook 'kill-buffer-hook #'alidist-mode--cancel-refresh-timer 0 t) - (setq alidist-mode--mmm-refresh-timer - (run-with-idle-timer - 2 t (lambda (original-buffer) - (when (eq original-buffer (current-buffer)) - ;; Silence `mmm-parse-buffer''s annoying message. - (let ((inhibit-message t)) - (mmm-parse-buffer)))) - ;; Idle timers are global, so make sure we only run the timer - ;; in the right buffer. Save the buffer now to enable this, - ;; and compare every time the timer ticks over. - (current-buffer))) - ;; Set up `flymake-mode'. - (add-hook 'flymake-diagnostic-functions #'alidist-flymake nil t) - (flymake-mode)) - -(define-derived-mode alidist-script-ts-mode bash-ts-mode "Script" - "A mode for scripts in alidist recipes, using tree-sitter.") - -(define-derived-mode alidist-script-mode sh-mode "Script" - "A mode for scripts in alidist recipes with some default settings." - (sh-set-shell "bash")) - -(mmm-add-group - 'alidist-recipe - `((alidist-main-script - :submode alidist-script-mode - :face mmm-default-submode-face - :front ,(rx line-start "---\n") - :back ,(rx buffer-end)) - (alidist-option-script - :submode alidist-script-mode - :face mmm-default-submode-face - ;; Any *_recipe key with a multiline string value is probably a script. - :front ,(rx line-start (* whitespace) - (or "recipe" ; for recipes under prefer_system_replacement_specs - (seq (1+ (any alnum ?\_)) - (or "_recipe" "_check"))) - ": |\n") - ;; End of YAML header, or another YAML key. - :back ,(rx line-start - (or "---\n" - (seq (* whitespace) (+ (any alnum ?\_)) ":" - (or line-end whitespace))))))) - -;; Make `mmm-mode' remember `sh-mode'/`bash-ts-mode' indentation variables. -(cl-dolist (var sh-var-list) - (cl-pushnew `(,var region (sh-mode bash-ts-mode)) - mmm-save-local-variables :test 'equal)) - -(mmm-add-mode-ext-class 'alidist-mode nil 'alidist-recipe) -(add-to-list 'auto-mode-alist - (cons (rx (or bot "/") "alidist/" (1+ (not ?\/)) ".sh" eot) - #'alidist-mode)) - -(provide 'alidist-mode) -;;; alidist-mode.el ends here diff --git a/tw/home/files/emacs-packages/bemscript-mode.el b/tw/home/files/emacs-packages/bemscript-mode.el deleted file mode 100644 index f46c858b..00000000 --- a/tw/home/files/emacs-packages/bemscript-mode.el +++ /dev/null @@ -1,92 +0,0 @@ -;;; bemscript-mode.el --- Syntax highlighting for MERRILL BEMScript files. -;;; Commentary: -;;; Based on the MERRILL manual. Some commands may have been missed. -;;; Code: - -(defconst bemscript-mode-keywords - '("set" "setsubdomain" "magnetite" "iron" "tm54" "resize" "cubic anisotropy" - "uniaxial anisotropy" "cubicrotation" "easy axis" "external field strength" - "external field direction" "readmesh" "loadmesh" "readmagnetization" - "uniform magnetization" "randomize magnetization" "randomize all moments" - "remesh" "conjugategradient" "steepestdescent" "minimize" "energylog" - "closelogfile" "writeloopdata" "writemagnetization" "writedemag" "writehyst" - "writeboxdata" "appenddemagzone" "magnetizationtopath" "pathtomagnetization" - "renewpath" "refinepathto" "writetecplotpath" "readtecplotpath" - "readtecplotzone" "keypause" "makeinitialpath" "pathminimize" "pathlogfile" - "systemcommand" "pathstructureenergies" "reportenergy" "stop" "end" "loop" - "endloop" "define" "addto" "undefine" "generatecubemesh" "zonename") - "List of keywords for BEMScript mode. Intended for case folding.") - -(defconst bemscript-mode-builtins - '("Aex" "CurvatureWeight" "ExchangeCalculator" "K1" "K2" "Ls" "Ms" "mu" - "MaxEnergyEvaluations" "MaxPathEvaluations" "MaxRestart" "MaxMeshNumber" - "NEBSpring" "PathN" "Zone" "ZoneIncrement") - "List of built-in variable names for BEMScript.") - -(defconst bemscript-mode-special - '("patran" "tecplot" "POINT" "BLOCK" "SD" "muT" "mT" "T" "C") - "Variables with special meanings and units in BEMScript.") - -;; Available font-lock-*-faces: doc type string builtin comment keyword warning -;; constant (reference) preprocessor syntactic-function function-name -;; negation-char variable-name comment-delimiter -(defconst bemscript-mode-font-lock-defaults - `((;; See font-lock-keywords docs. Earlier lines seem to override later ones, - ;; except if both have OVERRIDE? t. - ;; Format: (REGEXP (GROUPNUM FACENAME OVERRIDE? LAXMATCH?)...) - ;; Comments - ("!\\(.*\\)" 1 font-lock-comment-face t t) - ("!" 0 font-lock-comment-delimiter-face t) - ("!!.*$" 0 font-lock-doc-face t) - - ;; Equals signs need spaces around them. - ("\\s-=\\s-" 0 font-lock-type-face t) ; there is no "operator" etc face - ("=" . font-lock-warning-face) - - ;; Numbers and variables - ("\\<[0-9]*\\.?[0-9]+\\(e[-+]?\\)?[0-9]*\\>" . font-lock-constant-face) - ("\\(\\<[#%][A-Z_a-z][0-9A-Z_a-z]*\\>\\|\\$[A-Z_a-z][0-9A-Za-z_]*\\$\\)" - . font-lock-variable-name-face) - - ;; Preprocessor (&-substitution) - (,(concat "\\([^&]\\|^\\)\\(&&\\)*" ; && escapes & - "\\(&\\([_a-zA-Z][_a-zA-Z0-9]*\\|{[_a-zA-Z][_a-zA-Z0-9]*}\\)\\)") - 3 font-lock-preprocessor-face) - (,(concat "\\([^&]\\|^\\)\\(&&\\)*" ; && escapes & - "\\(&\\($" ; bare & - "\\|[^&{_a-zA-Z]\\|{[^_a-zA-Z]" ; invalid char following & or &{ - ; invalid name or unclosed { - "\\|{[_a-zA-Z][_0-9a-zA-Z]*\\([^_0-9a-zA-Z}]\\|$\\)\\)\\)") - 3 font-lock-warning-face t) - - ;; Variable definitions - ("\\<\\(loop\\|define\\)\\s-+\\([_a-zA-Z][_a-zA-Z0-9]*\\)\\>" - 2 font-lock-function-name-face) - ("\\<\\(addto\\|undefine\\)\\s-+\\([_a-zA-Z][_a-zA-Z0-9]*\\)\\>" - 2 font-lock-variable-name-face) - - ;; Keywords - (,(regexp-opt bemscript-mode-special 'words) . font-lock-string-face) - (,(regexp-opt bemscript-mode-keywords 'words) . font-lock-keyword-face) - (,(regexp-opt bemscript-mode-builtins 'words) . font-lock-builtin-face)) - - ;; KEYWORDS-ONLY: if t, no syntactic fontification (strings and comments) - nil - ;; CASE-FOLD: if t, make keywords case-insensitive. - t) - "Font lock settings for BEMScript mode.") - -(define-derived-mode bemscript-mode prog-mode "BEMScript" - "BEMScript-mode is used for editing MERRILL scripts." - (setq comment-start "!" - comment-end "" - tab-width 2 - font-lock-defaults bemscript-mode-font-lock-defaults) - ;; Only word syntax entries are highlighted; add needed chars. - (modify-syntax-entry ?# "w") - ;; Strings in BEMScript are not quoted. - (modify-syntax-entry ?\" "w")) - -(add-to-list 'auto-mode-alist '("\\.bem\\'" . bemscript-mode)) -(provide 'bemscript-mode) -;;; bemscript-mode.el ends here diff --git a/tw/home/files/emacs-packages/environmentd-mode.el b/tw/home/files/emacs-packages/environmentd-mode.el deleted file mode 100644 index 4bb8812e..00000000 --- a/tw/home/files/emacs-packages/environmentd-mode.el +++ /dev/null @@ -1,46 +0,0 @@ -;;; environmentd-mode.el --- Major mode for environment.d(5) files. - -;;; Commentary: - -;; This major mode font-locks files including /etc/environment and -;; ~/.config/environment.d/*.conf. Their format is specified by the -;; environment.d(5) man page. - -;;; Code: - -(defconst environmentd-mode/font-lock-defaults - '((("^[[:blank:]]+[^[:blank:]]+" . font-lock-warning-face) ; stray leading whitespace - ("^#+[[:blank:]]*" . font-lock-comment-delimiter-face) - ("^#+[[:blank:]]*\\(.*\\)$" 1 font-lock-comment-face) - ("\\\\[$\\]" . font-lock-string-face) ; escaped $ \ - ("^\\([A-Za-z_][A-Za-z0-9_]*\\)\\(=\\)" - (1 font-lock-variable-name-face) - (2 font-lock-keyword-face)) - ("\\(\\${\\)\\([A-Za-z_][A-Za-z0-9_]*\\)\\(:[+-]\\)[^}]*\\(}\\)" - (1 font-lock-keyword-face) - (2 font-lock-variable-name-face) - (3 font-lock-keyword-face) - (4 font-lock-keyword-face)) ; ${X:-default}-variable references - ("\\(\\${\\)\\([A-Za-z_][A-Za-z0-9_]*\\)\\(}\\)" - (1 font-lock-keyword-face) - (2 font-lock-variable-name-face) - (3 font-lock-keyword-face)) ; ${X}-variable references - ("\\(\\$\\)\\([A-Za-z_][A-Za-z0-9_]*\\)" - (1 font-lock-keyword-face) - (2 font-lock-variable-name-face))) ; $X-variable references - t nil ((?\' . "w") (?\" . "w"))) - "Font lock settings for Environment.d mode. See `font-lock-defaults' for documentation.") - -(define-derived-mode environmentd-mode prog-mode "Environment.d" - "Environment.d mode is used for environment.d(5) files." - (setq-local comment-start "#" - comment-start-skip "#" - comment-end "" - font-lock-defaults environmentd-mode/font-lock-defaults)) - -(add-to-list 'auto-mode-alist - '("/environment\\.d/[^/]+\\.conf\\'\\|\\`/etc/environment\\'" - . environmentd-mode)) - -(provide 'environmentd-mode) -;;; environmentd-mode.el ends here diff --git a/tw/home/files/emacs-packages/flymake-guile.el b/tw/home/files/emacs-packages/flymake-guile.el deleted file mode 100644 index edfbce82..00000000 --- a/tw/home/files/emacs-packages/flymake-guile.el +++ /dev/null @@ -1,123 +0,0 @@ -;;; flymake-guile.el --- Flymake checker using `guild compile' -*- lexical-binding: t -*- -;;; Commentary: -;;; "guild compile" compiles Guile code to bytecode and can output a few basic -;;; warnings. Let's use this as a linter! -;;; Code: - -(require 'custom) -(require 'flymake) -(require 'geiser-impl) ; for `geiser-active-implementations' - -(defcustom flymake-guile-guild-executable "guild" - "The guild executable to use. This will be looked up in $PATH." - :type '(string) - :risky t - :group 'flymake-guile) - -(defvar-local flymake-guile--flymake-proc nil - "The latest invocation of guild compile.") - -(defvar-local flymake-guile--temp-file nil - "The temporary file name to pass to guild.") - -(defun flymake-guile--encode-filename (buffer-name) - "Create a safe temporary file name from BUFFER-NAME." - (concat "/tmp/flymake-guile-" - (string-replace - "/" "!" ; we don't want to create subdirs under /tmp - (or buffer-name - (format "temp-%s.scm" - (random most-positive-fixnum)))))) - -;; See info node: (flymake)An annotated example backend. -(defun flymake-guile (report-fn &rest _args) - "Run guild compile and report diagnostics from it using REPORT-FN. -Any running invocations are killed before running another one." - (unless (executable-find flymake-guile-guild-executable) - (funcall report-fn :panic - :explanation "Cannot find `flymake-guile-guild-executable' program") - (error "Cannot find guild executable")) - - (unless flymake-guile--temp-file - (setq-local flymake-guile--temp-file (flymake-guile--encode-filename (buffer-file-name)))) - - ;; Kill previous check, if it's still running. - (when (process-live-p flymake-guile--flymake-proc) - (kill-process flymake-guile--flymake-proc)) - - ;; This needs `lexical-binding'. - (let ((source (current-buffer)) - ;; Copy `flymake-guile--temp-file' to a local var so that we can refer to it in the `lambda' below. - (temp-file flymake-guile--temp-file)) - (save-restriction - (widen) - ;; Send the buffer to guild on stdin. - (with-temp-file flymake-guile--temp-file - (insert-buffer-substring-no-properties source)) - (setq flymake-guile--flymake-proc - (make-process - :name "flymake-guild" :noquery t :connection-type 'pipe - ;; Direct output to a temporary buffer. - :buffer (generate-new-buffer " *flymake-guile*") - ;; Guild can't read from stdin; it needs a file. - :command (list flymake-guile-guild-executable "compile" - ;; See "guild --warn=help" for details. - ;; "--warn=unsupported-warning" ; ignore unsupported warning types - ;; "--warn=unused-variable" ; too many false positives from macros - "--warn=unused-toplevel" - "--warn=shadowed-toplevel" - "--warn=unbound-variable" - "--warn=macro-use-before-definition" - "--warn=use-before-definition" - "--warn=non-idempotent-definition" - "--warn=arity-mismatch" - "--warn=duplicate-case-datum" - "--warn=bad-case-datum" - "--warn=format" - "-L" (expand-file-name - (project-root (project-current nil (file-name-directory - (buffer-file-name source))))) - flymake-guile--temp-file) - :sentinel - (lambda (proc _event) - "Parse diagnostic messages once the process PROC has exited." - ;; Check the process has actually exited, not just been suspended. - (when (memq (process-status proc) '(exit signal)) - (unwind-protect - ;; Only proceed if we've got the "latest" process. - (if (with-current-buffer source (not (eq proc flymake-guile--flymake-proc))) - (flymake-log :warning "Canceling obsolete check %s" proc) - (with-current-buffer (process-buffer proc) - (goto-char (point-min)) - (cl-loop - with msg-regexp = (rx bol (literal temp-file) ":" ; filename - (group (+ digit)) ":" ; line - (group (+ digit)) ": " ; column - (group (or "warning" "error")) ": " ; type - (group (+ not-newline)) eol) ; message - while (search-forward-regexp msg-regexp nil t) - for (beg . end) = (flymake-diag-region - source ; we filter for messages matching our buffer in the regexp - (string-to-number (match-string 1)) - ;; guild outputs 0-based column numbers - (1+ (string-to-number (match-string 2)))) - for type = (pcase (match-string 3) - ("warning" :warning) - ("error" :error) - (type (error "Unknown guild error type %s" type))) - collect (flymake-make-diagnostic source beg end type (match-string 4)) - into diags - finally (funcall report-fn diags)))) - ;; Clean up temporary buffer. - (kill-buffer (process-buffer proc)) - (delete-file temp-file))))))))) - -(defun flymake-guile-enable () - "Set up the Guile checker for flymake, if in a Guile buffer." - (when (memq 'guile geiser-active-implementations) - (add-hook 'flymake-diagnostic-functions #'flymake-guile nil t))) - -(add-hook 'scheme-mode-hook #'flymake-guile-enable) - -(provide 'flymake-guile) -;;; flymake-guile.el ends here diff --git a/tw/home/files/emacs-packages/ifm-mode.el b/tw/home/files/emacs-packages/ifm-mode.el deleted file mode 100644 index 7416588b..00000000 --- a/tw/home/files/emacs-packages/ifm-mode.el +++ /dev/null @@ -1,18 +0,0 @@ -(define-generic-mode 'ifm-mode - '("#") - '("title" "map" "require" "room" "join" "to" "dir" "exit" "go" "oneway" - "tag" "from" "link" "nolink" "item" "in" "note" "score" "need" "after" - "before" "leave" "all" "except" "cmd" "length" "start" "finish" "nodrop" - "nopath" "style" "hidden" "keep" "with" "until" "ignore" "give" "lost" - "do" "get" "drop" "until" "safe" "ignore" "goto" "endstyle") - '(("\\<\\(\\(north\\|south\\)\\(east\\|west\\)?\\|[ns][ew]?\\|east\\|west\\|[ew]\\)\\>" - . 'font-lock-builtin-face) - ("\\<\\([du]\\|down\\|up\\|in\\|out\\|last\\|it\\|them\\)\\>" - . 'font-lock-builtin-face) - ("\\<[0-9]+" . 'font-lock-constant-face) - ("\\<[_a-zA-Z][_0-9A-Za-z]*\\>" . 'font-lock-variable-name-face)) - '("\\.ifm\\'") - nil - "A mode for interactive fiction manager files") - -(provide 'ifm-mode) diff --git a/tw/home/files/emacs-packages/pam-env-mode.el b/tw/home/files/emacs-packages/pam-env-mode.el deleted file mode 100644 index 75b0bf94..00000000 --- a/tw/home/files/emacs-packages/pam-env-mode.el +++ /dev/null @@ -1,45 +0,0 @@ -;;; pam-env.el --- Major mode for pam_env.conf(5) files. - -;;; Commentary: - -;; This major mode font-locks files including ~/.pam_environment and -;; /etc/security/pam_env.conf, but notably not /etc/environment. Their format is -;; specified by the pam_env.conf(5) man page. - -;; TODO: Only apply font-lock-variable-name-face to variable declarations if -;; the previous line didn't end with a backslash. The following case didn't -;; work (some declarations that should've been font-locked weren't): -;; '("\\(?:^$\\|[^\\\\]\\)[\r\n]\\([^[:blank:]]+\\)" -;; 1 font-lock-variable-name-face keep) - -;; pam_env does not support escaped double quotes ("). Single-quoted strings are -;; not used as string delimiters. We can only match against word chars in -;; `pam-env-mode/font-lock-defaults', so make double quotes word chars. - -;;; Code: - -(defconst pam-env-mode/font-lock-defaults - '((("^#+" . font-lock-comment-delimiter-face) - ("^#+[[:blank:]]*\\(.*\\)$" 1 font-lock-comment-face) - ("\\\\[@$\\]" . font-lock-string-face) ; escaped $ @ \ - ("@{[^}]+}" . font-lock-builtin-face) ; @{}-variable references - ("\\${[^}]+}" . font-lock-variable-name-face) ; ${}-variable references - ("\"[^\"]*\"" 0 font-lock-string-face keep) ; double-quoted strings; escaped " not supported - ("\\<\\(DEFAULT\\|OVERRIDE\\)=" . font-lock-keyword-face) ; DEFAULT= and OVERRIDE= - ("^[^[:blank:]]+" . font-lock-variable-name-face) ; variable declarations - ("[[:blank:]]+[^[:blank:]]+" . font-lock-warning-face)) ; stray whitespace - t nil ((?\' . "w") (?\" . "w"))) - "Font lock settings for PAM-Environment mode. See `font-lock-defaults' for documentation.") - -(define-derived-mode pam-env-mode prog-mode "PAM-Environment" - "PAM-environment mode is used for pam_env.conf(5) files." - (set (make-local-variable 'comment-start) "#") - (set (make-local-variable 'comment-start-skip) "^#+[[:blank:]]*") - (set (make-local-variable 'comment-end) "") - (set (make-local-variable 'font-lock-defaults) pam-env-mode/font-lock-defaults)) - -(let ((regexp "\\(\\`\\|/\\)\\(pam_env\\.conf\\|\\.pam_environment\\)\\'")) - (add-to-list 'auto-mode-alist `(,regexp . pam-env-mode))) - -(provide 'pam-env-mode) -;;; pam-env.el ends here diff --git a/tw/home/files/emacs-packages/vcard-mode.el b/tw/home/files/emacs-packages/vcard-mode.el deleted file mode 100644 index a932477a..00000000 --- a/tw/home/files/emacs-packages/vcard-mode.el +++ /dev/null @@ -1,56 +0,0 @@ -;;; vcard-mode.el --- Major mode for vCard files. - -;; Copyright (C) 2012 Desmond O. Chang - -;; Author: Desmond O. Chang <dochang@gmail.com> -;; Version: 0.1.0 -;; Keywords: files - -;; 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: - -;; This package provides a major mode to edit vCard files. - -;; To install it, put this file under your load path. Then add the -;; following to your .emacs file: - -;; (require 'vcard-mode) - -;; Or if you don't want to load it until editing a vCard file: - -;; (autoload 'vcard-mode "vcard-mode" "Major mode for vCard files" t) -;; (add-to-list 'auto-mode-alist '("\\.vc\\(f\\|ard\\)\\'" . vcard-mode)) - -;;; Code: - -(require 'generic) - -(defun vcard-mode-init () - (set (make-local-variable 'paragraph-start) "BEGIN:VCARD")) - -;;;###autoload -(define-generic-mode vcard-mode - '() - nil - '(("^BEGIN:VCARD" . font-lock-function-name-face) - (";[^:\n]+:" . font-lock-type-face) - ("^\\([^;:\n]+\\):?" . font-lock-keyword-face)) - '("\\.\\(vcf\\|vcard\\)\\'") - '(vcard-mode-init) - "Generic mode for vCard files.") - -(provide 'vcard-mode) - -;;; vcard-mode.el ends here |