summaryrefslogtreecommitdiff
path: root/tests/lexers/clojurescript/example.txt
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lexers/clojurescript/example.txt')
-rw-r--r--tests/lexers/clojurescript/example.txt410
1 files changed, 410 insertions, 0 deletions
diff --git a/tests/lexers/clojurescript/example.txt b/tests/lexers/clojurescript/example.txt
new file mode 100644
index 00000000..5a8a51fa
--- /dev/null
+++ b/tests/lexers/clojurescript/example.txt
@@ -0,0 +1,410 @@
+---input---
+
+(ns bounder.core
+ (:require [bounder.html :as html]
+ [domina :refer [value set-value! single-node]]
+ [domina.css :refer [sel]]
+ [lowline.functions :refer [debounce]]
+ [enfocus.core :refer [at]]
+ [cljs.reader :as reader]
+ [clojure.string :as s])
+ (:require-macros [enfocus.macros :as em]))
+
+(def filter-input
+ (single-node
+ (sel ".search input")))
+
+(defn project-matches [query project]
+ (let [words (cons (:name project)
+ (map name (:categories project)))
+ to-match (->> words
+ (s/join "")
+ (s/lower-case))]
+ (<= 0 (.indexOf to-match (s/lower-case query)))))
+
+(defn apply-filter-for [projects]
+ (let [query (value filter-input)]
+ (html/render-projects
+ (filter (partial project-matches query)
+ projects))))
+
+(defn filter-category [projects evt]
+ (let [target (.-currentTarget evt)]
+ (set-value! filter-input
+ (.-innerHTML target))
+ (apply-filter-for projects)))
+
+(defn init-listeners [projects]
+ (at js/document
+ ["input"] (em/listen
+ :keyup
+ (debounce
+ (partial apply-filter-for projects)
+ 500))
+ [".category-links li"] (em/listen
+ :click
+ (partial filter-category projects))))
+
+(defn init [projects-edn]
+ (let [projects (reader/read-string projects-edn)]
+ (init-listeners projects)
+ (html/render-projects projects)
+ (html/loaded)))
+
+
+---tokens---
+'(' Punctuation
+'ns ' Keyword.Declaration
+'bounder.core' Name.Variable
+'\n ' Text
+'(' Punctuation
+':require' Literal.String.Symbol
+' ' Text
+'[' Punctuation
+'bounder.html' Name.Variable
+' ' Text
+':as' Literal.String.Symbol
+' ' Text
+'html' Name.Variable
+']' Punctuation
+'\n ' Text
+'[' Punctuation
+'domina' Name.Variable
+' ' Text
+':refer' Literal.String.Symbol
+' ' Text
+'[' Punctuation
+'value' Name.Variable
+' ' Text
+'set-value!' Name.Variable
+' ' Text
+'single-node' Name.Variable
+']' Punctuation
+']' Punctuation
+'\n ' Text
+'[' Punctuation
+'domina.css' Name.Variable
+' ' Text
+':refer' Literal.String.Symbol
+' ' Text
+'[' Punctuation
+'sel' Name.Variable
+']' Punctuation
+']' Punctuation
+'\n ' Text
+'[' Punctuation
+'lowline.functions' Name.Variable
+' ' Text
+':refer' Literal.String.Symbol
+' ' Text
+'[' Punctuation
+'debounce' Name.Variable
+']' Punctuation
+']' Punctuation
+'\n ' Text
+'[' Punctuation
+'enfocus.core' Name.Variable
+' ' Text
+':refer' Literal.String.Symbol
+' ' Text
+'[' Punctuation
+'at' Name.Variable
+']' Punctuation
+']' Punctuation
+'\n ' Text
+'[' Punctuation
+'cljs.reader' Name.Variable
+' ' Text
+':as' Literal.String.Symbol
+' ' Text
+'reader' Name.Variable
+']' Punctuation
+'\n ' Text
+'[' Punctuation
+'clojure.string' Name.Variable
+' ' Text
+':as' Literal.String.Symbol
+' ' Text
+'s' Name.Variable
+']' Punctuation
+')' Punctuation
+'\n ' Text
+'(' Punctuation
+':require-macros' Literal.String.Symbol
+' ' Text
+'[' Punctuation
+'enfocus.macros' Name.Variable
+' ' Text
+':as' Literal.String.Symbol
+' ' Text
+'em' Name.Variable
+']' Punctuation
+')' Punctuation
+')' Punctuation
+'\n\n' Text
+
+'(' Punctuation
+'def ' Keyword
+'filter-input' Name.Variable
+' \n ' Text
+'(' Punctuation
+'single-node' Name.Function
+' \n ' Text
+'(' Punctuation
+'sel' Name.Function
+' ' Text
+'".search input"' Literal.String
+')' Punctuation
+')' Punctuation
+')' Punctuation
+'\n\n' Text
+
+'(' Punctuation
+'defn ' Keyword.Declaration
+'project-matches' Name.Variable
+' ' Text
+'[' Punctuation
+'query' Name.Variable
+' ' Text
+'project' Name.Variable
+']' Punctuation
+'\n ' Text
+'(' Punctuation
+'let ' Keyword
+'[' Punctuation
+'words' Name.Variable
+' ' Text
+'(' Punctuation
+'cons ' Name.Builtin
+'(' Punctuation
+':name' Literal.String.Symbol
+' ' Text
+'project' Name.Variable
+')' Punctuation
+'\n ' Text
+'(' Punctuation
+'map ' Name.Builtin
+'name ' Name.Builtin
+'(' Punctuation
+':categories' Literal.String.Symbol
+' ' Text
+'project' Name.Variable
+')' Punctuation
+')' Punctuation
+')' Punctuation
+'\n ' Text
+'to-match' Name.Variable
+' ' Text
+'(' Punctuation
+'->>' Name.Function
+' ' Text
+'words' Name.Variable
+'\n ' Text
+'(' Punctuation
+'s/join' Name.Function
+' ' Text
+'""' Literal.String
+')' Punctuation
+'\n ' Text
+'(' Punctuation
+'s/lower-case' Name.Function
+')' Punctuation
+')' Punctuation
+']' Punctuation
+'\n ' Text
+'(' Punctuation
+'<= ' Name.Builtin
+'0' Literal.Number.Integer
+' ' Text
+'(' Punctuation
+'.indexOf' Name.Function
+' ' Text
+'to-match' Name.Variable
+' ' Text
+'(' Punctuation
+'s/lower-case' Name.Function
+' ' Text
+'query' Name.Variable
+')' Punctuation
+')' Punctuation
+')' Punctuation
+')' Punctuation
+')' Punctuation
+'\n\n' Text
+
+'(' Punctuation
+'defn ' Keyword.Declaration
+'apply-filter-for' Name.Variable
+' ' Text
+'[' Punctuation
+'projects' Name.Variable
+']' Punctuation
+'\n ' Text
+'(' Punctuation
+'let ' Keyword
+'[' Punctuation
+'query' Name.Variable
+' ' Text
+'(' Punctuation
+'value' Name.Function
+' ' Text
+'filter-input' Name.Variable
+')' Punctuation
+']' Punctuation
+'\n ' Text
+'(' Punctuation
+'html/render-projects' Name.Function
+' \n ' Text
+'(' Punctuation
+'filter ' Name.Builtin
+'(' Punctuation
+'partial ' Name.Builtin
+'project-matches' Name.Variable
+' ' Text
+'query' Name.Variable
+')' Punctuation
+'\n ' Text
+'projects' Name.Variable
+')' Punctuation
+')' Punctuation
+')' Punctuation
+')' Punctuation
+'\n\n' Text
+
+'(' Punctuation
+'defn ' Keyword.Declaration
+'filter-category' Name.Variable
+' ' Text
+'[' Punctuation
+'projects' Name.Variable
+' ' Text
+'evt' Name.Variable
+']' Punctuation
+'\n ' Text
+'(' Punctuation
+'let ' Keyword
+'[' Punctuation
+'target' Name.Variable
+' ' Text
+'(' Punctuation
+'.-currentTarget' Name.Function
+' ' Text
+'evt' Name.Variable
+')' Punctuation
+']' Punctuation
+'\n ' Text
+'(' Punctuation
+'set-value!' Name.Function
+' ' Text
+'filter-input' Name.Variable
+' \n ' Text
+'(' Punctuation
+'.-innerHTML' Name.Function
+' ' Text
+'target' Name.Variable
+')' Punctuation
+')' Punctuation
+'\n ' Text
+'(' Punctuation
+'apply-filter-for' Name.Function
+' ' Text
+'projects' Name.Variable
+')' Punctuation
+')' Punctuation
+')' Punctuation
+'\n\n' Text
+
+'(' Punctuation
+'defn ' Keyword.Declaration
+'init-listeners' Name.Variable
+' ' Text
+'[' Punctuation
+'projects' Name.Variable
+']' Punctuation
+'\n ' Text
+'(' Punctuation
+'at' Name.Function
+' ' Text
+'js/document' Name.Variable
+'\n ' Text
+'[' Punctuation
+'"input"' Literal.String
+']' Punctuation
+' ' Text
+'(' Punctuation
+'em/listen' Name.Function
+'\n ' Text
+':keyup' Literal.String.Symbol
+'\n ' Text
+'(' Punctuation
+'debounce' Name.Function
+'\n ' Text
+'(' Punctuation
+'partial ' Name.Builtin
+'apply-filter-for' Name.Variable
+' ' Text
+'projects' Name.Variable
+')' Punctuation
+'\n ' Text
+'500' Literal.Number.Integer
+')' Punctuation
+')' Punctuation
+'\n ' Text
+'[' Punctuation
+'".category-links li"' Literal.String
+']' Punctuation
+' ' Text
+'(' Punctuation
+'em/listen' Name.Function
+'\n ' Text
+':click' Literal.String.Symbol
+'\n ' Text
+'(' Punctuation
+'partial ' Name.Builtin
+'filter-category' Name.Variable
+' ' Text
+'projects' Name.Variable
+')' Punctuation
+')' Punctuation
+')' Punctuation
+')' Punctuation
+'\n\n' Text
+
+'(' Punctuation
+'defn ' Keyword.Declaration
+'init' Name.Variable
+' ' Text
+'[' Punctuation
+'projects-edn' Name.Variable
+']' Punctuation
+'\n ' Text
+'(' Punctuation
+'let ' Keyword
+'[' Punctuation
+'projects' Name.Variable
+' ' Text
+'(' Punctuation
+'reader/read-string' Name.Function
+' ' Text
+'projects-edn' Name.Variable
+')' Punctuation
+']' Punctuation
+'\n ' Text
+'(' Punctuation
+'init-listeners' Name.Function
+' ' Text
+'projects' Name.Variable
+')' Punctuation
+'\n ' Text
+'(' Punctuation
+'html/render-projects' Name.Function
+' ' Text
+'projects' Name.Variable
+')' Punctuation
+'\n ' Text
+'(' Punctuation
+'html/loaded' Name.Function
+')' Punctuation
+')' Punctuation
+')' Punctuation
+'\n' Text