[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/nix-mode ae68b456f8 022/500: Refactor font lock
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/nix-mode ae68b456f8 022/500: Refactor font lock |
Date: |
Sat, 29 Jan 2022 08:26:32 -0500 (EST) |
branch: elpa/nix-mode
commit ae68b456f8eae0d45221100d7f7ab0ca9ffc3922
Author: Matthew Bauer <mjbauer95@gmail.com>
Commit: Matthew Bauer <mjbauer95@gmail.com>
Refactor font lock
---
nix-mode.el | 60 +++++++++++++++++++++++++++---------------------------------
1 file changed, 27 insertions(+), 33 deletions(-)
diff --git a/nix-mode.el b/nix-mode.el
index 3a5604f189..4f6ed2298b 100644
--- a/nix-mode.el
+++ b/nix-mode.el
@@ -36,39 +36,32 @@
(set-match-data (list pos (point)))
t))))
+(defconst nix-keywords
+ '("if" "then"
+ "else" "with"
+ "let" "in"
+ "rec" "inherit"
+ "or"
+ ))
+
+(defconst nix-builtins
+ '("builtins" "baseNameOf"
+ "derivation" "dirOf"
+ "false" "fetchTarball"
+ "import" "isNull"
+ "map" "removeAttrs"
+ "toString" "true"))
+
+(defconst nix-warning-keywords
+ '("assert" "abort" "throw"))
+
(defconst nix-font-lock-keywords
- '(
- ;; keywords
- ("\\_<if\\_>" . font-lock-keyword-face)
- ("\\_<then\\_>" . font-lock-keyword-face)
- ("\\_<else\\_>" . font-lock-keyword-face)
- ("\\_<with\\_>" . font-lock-keyword-face)
- ("\\_<let\\_>" . font-lock-keyword-face)
- ("\\_<in\\_>" . font-lock-keyword-face)
- ("\\_<rec\\_>" . font-lock-keyword-face)
- ("\\_<inherit\\_>" . font-lock-keyword-face)
- ("\\_<or\\_>" . font-lock-keyword-face)
-
- ;; builtin functions
- ;; taken from http://nixos.org/nix/manual/#ssec-builtins
- ("\\_<builtins\\(\.[a-zA-Z]+\\)?\\_>" . font-lock-builtin-face)
- ("\\_<baseNameOf\\_>" . font-lock-builtin-face)
- ("\\_<derivation\\_>" . font-lock-builtin-face)
- ("\\_<dirOf\\_>" . font-lock-builtin-face)
- ("\\_<false\\_>" . font-lock-builtin-face)
- ("\\_<fetchTarball\\_>" . font-lock-builtin-face)
- ("\\_<import\\_>" . font-lock-builtin-face)
- ("\\_<isNull\\_>" . font-lock-builtin-face)
- ("\\_<map\\_>" . font-lock-builtin-face)
- ("\\_<null\\_>" . font-lock-builtin-face)
- ("\\_<removeAttrs\\_>" . font-lock-builtin-face)
- ("\\_<toString\\_>" . font-lock-builtin-face)
- ("\\_<true\\_>" . font-lock-builtin-face)
-
- ;; warnings
- ("\\_<assert\\_>" . font-lock-warning-face)
- ("\\_<abort\\_>" . font-lock-warning-face)
- ("\\_<throw\\_>" . font-lock-warning-face)
+ `(
+ (,(regexp-opt nix-keywords 'symbols) . font-lock-keyword-face)
+
+ (,(regexp-opt nix-warning-keywords 'symbols) . font-lock-warning-face)
+
+ (,(regexp-opt nix-builtins 'symbols) . font-lock-builtin-face)
("[a-zA-Z][a-zA-Z0-9\\+-\\.]*:[a-zA-Z0-9%/\\?:@&=\\+\\$,_\\.!~\\*'-]+"
. font-lock-constant-face)
@@ -78,7 +71,8 @@
. font-lock-constant-face)
("[a-zA-Z0-9._\\+-]*\\(/[a-zA-Z0-9._\\+-]+\\)+"
. font-lock-constant-face)
- (nix-syntax-match-antiquote 0 font-lock-preprocessor-face t))
+ (nix-syntax-match-antiquote 0 font-lock-preprocessor-face t)
+ )
"Font lock keywords for nix.")
(defvar nix-mode-syntax-table
- [nongnu] elpa/nix-mode bd7d93998f 163/500: Fix some grammar issues in README, (continued)
- [nongnu] elpa/nix-mode bd7d93998f 163/500: Fix some grammar issues in README, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 84996a7804 158/500: Fix checkdoc errors., ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 14322f186f 189/500: Use locate-library instead of find-library, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode a3eb135716 492/500: nix-flake: Fix miscomparison to avoid repeatedly adding to registry, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 2a24b400b6 485/500: chore: Bump install-nix-action to v14.1, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode ce7996c6e7 476/500: nix-flake: Cosmetics, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 3d4f24b2b6 472/500: nix-flake: Allow switching the flake inside nix-flake-dispatch, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 5fb9df6f69 497/500: chore(deps): bump cachix/install-nix-action from 14.1 to 16, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 687665a6b0 001/500: Initial commit, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode e6b9f1b939 016/500: Add menu bar., ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode ae68b456f8 022/500: Refactor font lock,
ELPA Syncer <=
- [nongnu] elpa/nix-mode 7b47e2b4bc 042/500: Fix formatting., ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 570d60d460 045/500: Rewrite nix-indent-level-parens with while loop., ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 8a65262d37 200/500: Remove smartparens feature detection, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode cc23fd6a0e 206/500: Default to indent-relative, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 9f4f5d5860 204/500: Checkdoc of elisp, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode be7184ffcd 209/500: use tab-width instead of hardcoded '2', ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 5a8b334c75 212/500: Merge pull request #42 from serokell/master, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode b8aed79f89 211/500: No need to indent on = and ; (ruins your day), ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 81680dd7ac 213/500: nix-repl.el: make it work with newer nix repl command, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode a8af6e9203 218/500: Find nix executables at start, ELPA Syncer, 2022/01/29