From 8bfec94690f2d0c5547490bab6367d09c72894af Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 31 May 2018 06:23:20 -0300 Subject: [PATCH 1/3] added more keywords Clojure has many reserved words --- src/clojure/clojure.ts | 50 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/src/clojure/clojure.ts b/src/clojure/clojure.ts index 5b625428..582eafb2 100644 --- a/src/clojure/clojure.ts +++ b/src/clojure/clojure.ts @@ -45,16 +45,56 @@ export const language = { keywords: [ 'ns', 'ns-unmap', + 'create-ns', + 'in-ns', 'fn', 'def', 'defn', 'defmacro', 'defmulti', 'defonce', + 'require', + 'import', + 'new', + 'refer', + 'pos', + 'pos\\?', + 'filter', + 'map', + 'reduce', + 'repeat', + 'key', + 'rest', + 'concat', + 'into', + 'reverse', + 'iterate', + 'range', + 'drop', + 'drop\\-while', + 'take', + 'take\\-while', + 'neg', + 'neg?', 'bound\\-fn', 'if', 'if\\-not', + 'if\\-let', 'case,', + 'contains', + 'conj', + 'disj', + 'sort', + 'get', + 'assoc', + 'merge', + 'keys', + 'vals', + 'nth', + 'first', + 'last', + 'count', + 'contains?', 'cond', 'condp', 'cond\\-\\>', @@ -62,6 +102,7 @@ export const language = { 'when', 'while', 'when\\-not', + 'when\\-let', 'when\\-first', 'do', 'future', @@ -69,6 +110,10 @@ export const language = { 'doto', 'locking', 'proxy', + 'println', + 'type', + 'meta', + 'var', 'as\\-\\>', 'reify', 'deftype', @@ -87,6 +132,7 @@ export const language = { 'binding', 'loop', 'for', + 'seq', 'doseq', 'dotimes', 'when\\-let', @@ -99,6 +145,8 @@ export const language = { 'deftest', 'are', 'use\\-fixtures', + 'use', + 'remove', 'run', 'run\\*', 'fresh', @@ -109,7 +157,7 @@ export const language = { 'thread', ], - constants: ['true', 'false', 'nil'], + constants: ['true', 'false', 'nil', 'boolean', 'str'], operators: ['=', 'not=', '<', '<=', '>', '>=', 'and', 'or', 'not', 'inc', 'dec', 'max', 'min', 'rem', 'bit-and', 'bit-or', 'bit-xor', 'bit-not'], From 380fe86dd8c413c8c1bbca24fe3e8b81fe0c3d97 Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 31 May 2018 06:34:02 -0300 Subject: [PATCH 2/3] fixed keyword that contains `-` --- src/clojure/clojure.test.ts | 8 +++++++ src/clojure/clojure.ts | 46 ++++++++++++++++++------------------- 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/src/clojure/clojure.test.ts b/src/clojure/clojure.test.ts index 19eee593..ab1bc64e 100644 --- a/src/clojure/clojure.test.ts +++ b/src/clojure/clojure.test.ts @@ -27,6 +27,14 @@ testTokenization('clojure', [ { startIndex: 8, type: 'string.clj'}, ], }, + { + line: 'in-ns "user', + tokens: [ + { startIndex: 0, type: 'keyword.clj' }, + { startIndex: 5, type: 'white.clj' }, + { startIndex: 6, type: 'string.clj' }, + ], + }, ], // comments diff --git a/src/clojure/clojure.ts b/src/clojure/clojure.ts index 582eafb2..97748220 100644 --- a/src/clojure/clojure.ts +++ b/src/clojure/clojure.ts @@ -44,9 +44,9 @@ export const language = { keywords: [ 'ns', - 'ns-unmap', - 'create-ns', - 'in-ns', + 'ns\-unmap', + 'create\-ns', + 'in\-ns', 'fn', 'def', 'defn', @@ -71,15 +71,15 @@ export const language = { 'iterate', 'range', 'drop', - 'drop\\-while', + 'drop\-while', 'take', - 'take\\-while', + 'take\-while', 'neg', 'neg?', - 'bound\\-fn', + 'bound\-fn', 'if', - 'if\\-not', - 'if\\-let', + 'if\-not', + 'if\-let', 'case,', 'contains', 'conj', @@ -97,13 +97,13 @@ export const language = { 'contains?', 'cond', 'condp', - 'cond\\-\\>', - 'cond\\-\\>\\>', + 'cond\-\>', + 'cond\-\>\>', 'when', 'while', - 'when\\-not', - 'when\\-let', - 'when\\-first', + 'when\-not', + 'when\-let', + 'when\-first', 'do', 'future', 'comment', @@ -114,7 +114,7 @@ export const language = { 'type', 'meta', 'var', - 'as\\-\\>', + 'as\-\>', 'reify', 'deftype', 'defrecord', @@ -123,7 +123,7 @@ export const language = { 'extend-protocol', 'extend-type', 'specify', - 'specify\\!', + 'specify\!', 'try', 'catch', 'finally', @@ -135,25 +135,25 @@ export const language = { 'seq', 'doseq', 'dotimes', - 'when\\-let', - 'if\\-let', - 'when\\-some', - 'if\\-some', - 'this\\-as', + 'when\-let', + 'if\-let', + 'when\-some', + 'if\-some', + 'this\-as', 'defmethod', 'testing', 'deftest', 'are', - 'use\\-fixtures', + 'use\-fixtures', 'use', 'remove', 'run', - 'run\\*', + 'run\*', 'fresh', 'alt!', 'alt!!', 'go', - 'go\\-loop', + 'go\-loop', 'thread', ], From 4f1958ac275efcf1f7c92a030ccbcfa10293943d Mon Sep 17 00:00:00 2001 From: Avelino Date: Thu, 31 May 2018 06:39:50 -0300 Subject: [PATCH 3/3] fixed clear \\ to \ on keywords --- src/clojure/clojure.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/clojure/clojure.ts b/src/clojure/clojure.ts index 97748220..010c6dec 100644 --- a/src/clojure/clojure.ts +++ b/src/clojure/clojure.ts @@ -58,7 +58,7 @@ export const language = { 'new', 'refer', 'pos', - 'pos\\?', + 'pos\?', 'filter', 'map', 'reduce',