;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (require 'scheme) (defvar wisp-builtin '("and" "char=?" "define" "define-syntax" "define-syntax-rule" "defun" "if" "let" "let*" "not" "or" "set!" "set!" "set" "setq" "syntax-case" "syntax-rules" "when" "while")) #@49 Default highlighting expressions for wisp mode. (defvar wisp-font-lock-keywords (byte-code "\301\302\303\304\305\306\307\"\310B\311BBBBBBC\207" [wisp-builtin ("\\`#!.*" . font-lock-comment-face) ("\"\\.\\*\\?" . font-lock-string-face) ("[{}]" . font-lock-string-face) ("^\\(?:_* +\\| *\\): *$" . font-lock-keyword-face) ("^\\(?:_* +\\| *\\): \\| *\\. " . font-lock-keyword-face) regexp-opt symbols font-lock-builtin-face (("^\\(?:_*\\)\\(?: +\\)\\([^:][^ ]*\\)" . font-lock-function-name-face) ("^\\(?: *\\)[^ :][^ ]*" . font-lock-function-name-face) (" : " "\\=\\([^ ]+\\)" nil nil (1 font-lock-function-name-face)) ("[^']( *" "\\=\\([^ )]+\\)" nil nil (1 font-lock-function-name-face)) ("#[tf]" . font-lock-constant-face) ("#\\\\[^ ]+" . font-lock-constant-face) (";" quote font-lock-comment-delimiter-face) ("\\_<[+-]?[0-9]+\\_>\\|\\_<[+-][0-9]*\\.[0-9]*\\(e[+-]?[0-9]+\\)?\\_>" . font-lock-constant-face) ("'()" . font-lock-constant-face) ("[ ]'[^ ]+" . font-lock-constant-face) (" : \\| \\. " . font-lock-keyword-face))] 8) (#$ . 299)) #@60 Get the amount of indentation spaces of the previous line. (defalias 'wisp--prev-indent #[nil "\212\300y\210\301 \203\300y\210\202\302 \210i)\207" [-1 wisp--line-empty\? back-to-indentation] 1 (#$ . 1354)]) #@70 Get the indentation which is lower than INDENT among previous lines. (defalias 'wisp-prev-indent-lower-than #[(indent) "\212\301y\210\302 \204\303 Y\203\303 \304V\203\301y\210\202\305 \210i)\207" [indent -1 wisp--line-empty\? wisp--current-indent 0 back-to-indentation] 2 (#$ . 1571)]) #@37 Check if the current line is empty. (defalias 'wisp--line-empty\? #[nil "\300\301\302 \"\207" [string-match "^ *$" wisp--get-current-line] 3 (#$ . 1872)]) #@35 Get the current line as a string. (defalias 'wisp--get-current-line #[nil "\300\301 \302 \"\207" [buffer-substring-no-properties point-at-bol point-at-eol] 3 (#$ . 2033)]) #@59 Get the amount of indentation spaces if the current line. (defalias 'wisp--current-indent #[nil "\212\300 \210i)\207" [back-to-indentation] 1 (#$ . 2211)]) #@62 Make sure NUM is a valid number for calculating indentation. (defalias 'wisp--fix-num #[(num) "\204\301\207\301W\203\301\207\207" [num 0] 2 (#$ . 2373)]) #@59 Indent the current line by the amount of provided in NUM. (defalias 'wisp--indent #[(num) "i\303 \n\232?\205%\n\304]\305\n!\210) X?\205%\306\307\n Z\\!!*\207" [currind currcol num wisp--current-indent 0 indent-line-to move-to-column wisp--fix-num] 5 (#$ . 2540)]) #@342 Cycle through indentations depending on the previous line. If the current indentation is equal to the previous line, increase indentation by one tab, if the current indentation is zero, indent up to the previous line if the current indentation is less than the previous line, increase by one tab, but at most to the previous line. (defalias 'wisp--tab #[nil "\304 \305  \232\203 \n\\\202+\306U\203 \202+ W\203* \n\\^\202+\306\307 !+\207" [curr prev tab-width width wisp--current-indent wisp--prev-indent 0 wisp--indent] 3 (#$ . 2819) nil]) #@150 Cycle through indentations depending on the previous line. This is the inverse of 'wisp--tab', except that it jums from 0 to prev, not to prev+tab. (defalias 'wisp--backtab #[nil "\303 \304  X\203\305!\202'\306U\203 \202' V\203& \202'\306\307\n!+\207" [curr prev width wisp--current-indent wisp--prev-indent wisp-prev-indent-lower-than 0 wisp--indent] 2 (#$ . 3391) nil]) #@44 Enter a newline while keeping indentation. (defalias 'wisp--return #[nil "\302 \303 \304 \210\305!*\207" [curr prev wisp--current-indent wisp--prev-indent newline wisp--indent] 2 (#$ . 3785) nil]) (defvar wisp-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [wisp-mode-hook variable-documentation put "Hook run after entering Wisp mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp wisp-mode-map definition-name wisp-mode] 4) (defvar wisp-mode-map (make-sparse-keymap)) (byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\322#\207" [wisp-mode-abbrev-table wisp-mode-map variable-documentation put purecopy "Keymap for `wisp-mode'." boundp wisp-mode-syntax-table definition-name wisp-mode (lambda (def-tmp-var) (defvar wisp-mode-syntax-table def-tmp-var)) make-syntax-table "Syntax table for `wisp-mode'." (lambda (def-tmp-var) (defvar wisp-mode-abbrev-table def-tmp-var)) define-abbrev-table nil "Abbrev table for `wisp-mode'." derived-mode-parent emacs-lisp-mode] 5) #@236 Major mode for whitespace-to-lisp files. \{wisp-mode-map} In addition to any hooks its parent mode `emacs-lisp-mode' might have run, this mode runs the hook `wisp-mode-hook', as the final or penultimate step during initialization. (defalias 'wisp-mode #[nil "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315 !\204'\316 \317 \"\210\320\f!\211\2036 \321 =\203<\322\f\323 \"\210)\324.\325\"\204V./=\204V\326.\325/C#\210\327 !\210\330\f!\210./\306\331!\210\332\3330\3341\3352\306\336!\210\337\306\340!\210\307 \306\341!\2103!\306\342!\210\307\"\343 \344\345#\210\343 \346\347#\210\343 \350\351#\210\343 \352\353#\210)\354\355!\207" [delay-mode-hooks major-mode mode-name wisp-mode-map wisp-mode-syntax-table parent make-local-variable t emacs-lisp-mode wisp-mode "Wisp" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table indent-tabs-mode nil ";" "" ((nil "^define\\(/contract\\)? +:? *\\([^[ \n(){}\",'`;#|\\]+\\)" 2)) font-lock-comment-start-skip ";+ *" parse-sexp-ignore-comments font-lock-defaults mode-require-final-newline define-key "i" ("imenu" . imenu) [tab] ("indent line" . wisp--tab) [backtab] ("unindent line" . wisp--backtab) " " ("wisp newline" . wisp--return) run-mode-hooks wisp-mode-hook wisp-mode-abbrev-table local-abbrev-table comment-start comment-end imenu-generic-expression wisp-font-lock-keywords] 6 (#$ . 5125) nil]) (byte-code "\300\301\302\"\210\303\304\305\"\210\306\307!\207" [add-to-list auto-mode-alist ("\\.w\\'" . wisp-mode) add-hook wisp-mode-hook #[nil "\301\211\207" [electric-indent-inhibit t] 2] provide wisp-mode] 3)