Skip to content

Commit f8ff144

Browse files
committed
Use clj4intellij def-extension
1 parent 6b9191b commit f8ff144

15 files changed

+341
-336
lines changed
Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
(ns com.github.clojure-lsp.intellij.extension.brace-matcher
2-
(:gen-class
3-
:name com.github.clojure_lsp.intellij.extension.BraceMatcher
4-
:implements [com.intellij.lang.PairedBraceMatcher])
2+
(:require
3+
[com.github.ericdallo.clj4intellij.extension :refer [def-extension]])
54
(:import
65
[com.github.clojure_lsp.intellij ClojureTokens]
7-
[com.intellij.lang BracePair]
6+
[com.intellij.lang BracePair PairedBraceMatcher]
87
[com.intellij.psi.tree IElementType]))
98

109
(set! *warn-on-reflection* true)
1110

12-
(defn -getPairs [_]
13-
(into-array BracePair ClojureTokens/BRACE_PAIRS))
14-
15-
(defn -isPairedBracesAllowedBeforeType
16-
[_ _ ^IElementType context-type]
17-
(boolean context-type))
18-
19-
(defn -getCodeConstructStart [_ _psi-file opening-brace-offset]
20-
opening-brace-offset)
11+
(def-extension BraceMatcher []
12+
PairedBraceMatcher
13+
(getPairs [_]
14+
(into-array BracePair ClojureTokens/BRACE_PAIRS))
15+
(isPairedBracesAllowedBeforeType
16+
[_ _ ^IElementType context-type]
17+
(boolean context-type))
18+
(getCodeConstructStart [_ _psi-file opening-brace-offset]
19+
opening-brace-offset))

src/main/clojure/com/github/clojure_lsp/intellij/extension/bundled_dictionary_provider.clj

Lines changed: 0 additions & 7 deletions
This file was deleted.

src/main/clojure/com/github/clojure_lsp/intellij/extension/clojure_module_builder.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
(set! *warn-on-reflection* true)
2525

26-
(def clojure-module
26+
(def ^:private clojure-module
2727
(proxy+ ClojureModuleType ["CLOJURE_MODULE"] ModuleType
2828
(getName [_] "Clojure")
2929
(getDescription [_] "Create programs using the Clojure language.")

src/main/clojure/com/github/clojure_lsp/intellij/extension/color_settings_page.clj

Lines changed: 48 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
(ns com.github.clojure-lsp.intellij.extension.color-settings-page
2-
(:gen-class
3-
:name com.github.clojure_lsp.intellij.extension.ColorSettingsPage
4-
:implements [com.intellij.openapi.options.colors.RainbowColorSettingsPage])
2+
(:require
3+
[com.github.ericdallo.clj4intellij.extension :refer [def-extension]])
54
(:import
65
[com.github.clojure_lsp.intellij ClojureLanguage]
76
[com.github.clojure_lsp.intellij Icons]
87
[com.github.clojure_lsp.intellij.language ClojureColors]
98
[com.github.clojure_lsp.intellij.language ClojureSyntaxHighlighter]
109
[com.intellij.codeHighlighting RainbowHighlighter]
1110
[com.intellij.openapi.editor.colors TextAttributesKey]
12-
[com.intellij.openapi.options.colors ColorDescriptor]
11+
[com.intellij.openapi.options.colors ColorDescriptor RainbowColorSettingsPage]
1312
[com.intellij.openapi.options.colors AttributesDescriptor]))
1413

1514
(set! *warn-on-reflection* true)
1615

17-
(def descriptors
16+
(def ^:private descriptors
1817
(->> {"Comments//Line comment" ClojureColors/LINE_COMMENT
1918
"Comments//Form comment" ClojureColors/FORM_COMMENT
2019
"Literals//Symbol" ClojureColors/SYMBOL
@@ -54,44 +53,46 @@
5453
(mapv #(AttributesDescriptor. ^String (first %) ^TextAttributesKey (second %)))
5554
(into-array AttributesDescriptor)))
5655

57-
(defn -getLanguage [_] (ClojureLanguage/INSTANCE))
58-
59-
(defn -isRainbowType [_ ^TextAttributesKey key]
60-
(or (= key ClojureColors/FN_ARGUMENT)
61-
(= key ClojureColors/LET_BINDING)))
62-
63-
(defn -getDisplayName [_] "Clojure")
64-
65-
(defn -getIcon [_] Icons/CLOJURE)
66-
67-
(defn -getAttributeDescriptors [_] descriptors)
68-
69-
(defn -getColorDescriptors [_] ColorDescriptor/EMPTY_ARRAY)
70-
71-
(defn -getHighlighter [_] (ClojureSyntaxHighlighter. (ClojureLanguage/INSTANCE)))
72-
73-
(defn -getAdditionalHighlightingTagToDescriptorMap [_]
74-
(merge {"ns" ClojureColors/NAMESPACE
75-
"def" ClojureColors/DEFINITION
76-
"alias" ClojureColors/ALIAS
77-
"keyword" ClojureColors/KEYWORD
78-
"sym" ClojureColors/QUOTED_SYM
79-
"dynamic" ClojureColors/DYNAMIC
80-
"data-reader" ClojureColors/DATA_READER
81-
"fn-arg" ClojureColors/FN_ARGUMENT
82-
"binding" ClojureColors/LET_BINDING
83-
"form-comment" ClojureColors/FORM_COMMENT
84-
"call" ClojureColors/CALLABLE
85-
"str" ClojureColors/STRING
86-
"java-class" ClojureColors/JAVA_CLASS
87-
"java-static-method" ClojureColors/JAVA_STATIC_METHOD
88-
"java-static-field" ClojureColors/JAVA_STATIC_FIELD
89-
"java-instance-field" ClojureColors/JAVA_INSTANCE_FIELD
90-
"java-instance-method" ClojureColors/JAVA_INSTANCE_METHOD}
91-
(RainbowHighlighter/createRainbowHLM)))
92-
93-
(defn -getDemoText [_]
94-
"
56+
(def-extension ClojureColorSettingsPage []
57+
RainbowColorSettingsPage
58+
(getLanguage [_] (ClojureLanguage/INSTANCE))
59+
60+
(isRainbowType [_ ^TextAttributesKey key]
61+
(or (= key ClojureColors/FN_ARGUMENT)
62+
(= key ClojureColors/LET_BINDING)))
63+
64+
(getDisplayName [_] "Clojure")
65+
66+
(getIcon [_] Icons/CLOJURE)
67+
68+
(getAttributeDescriptors [_] descriptors)
69+
70+
(getColorDescriptors [_] ColorDescriptor/EMPTY_ARRAY)
71+
72+
(getHighlighter [_] (ClojureSyntaxHighlighter. (ClojureLanguage/INSTANCE)))
73+
74+
(getAdditionalHighlightingTagToDescriptorMap [_]
75+
(merge {"ns" ClojureColors/NAMESPACE
76+
"def" ClojureColors/DEFINITION
77+
"alias" ClojureColors/ALIAS
78+
"keyword" ClojureColors/KEYWORD
79+
"sym" ClojureColors/QUOTED_SYM
80+
"dynamic" ClojureColors/DYNAMIC
81+
"data-reader" ClojureColors/DATA_READER
82+
"fn-arg" ClojureColors/FN_ARGUMENT
83+
"binding" ClojureColors/LET_BINDING
84+
"form-comment" ClojureColors/FORM_COMMENT
85+
"call" ClojureColors/CALLABLE
86+
"str" ClojureColors/STRING
87+
"java-class" ClojureColors/JAVA_CLASS
88+
"java-static-method" ClojureColors/JAVA_STATIC_METHOD
89+
"java-static-field" ClojureColors/JAVA_STATIC_FIELD
90+
"java-instance-field" ClojureColors/JAVA_INSTANCE_FIELD
91+
"java-instance-method" ClojureColors/JAVA_INSTANCE_METHOD}
92+
(RainbowHighlighter/createRainbowHLM)))
93+
94+
(getDemoText [_]
95+
"
9596
(ns <ns>my-awesome-namespace</ns>
9697
(<keyword>:require</keyword>
9798
[clojure.string <keyword>:as</keyword> string]
@@ -128,7 +129,7 @@ nil
128129
(def <def>INIT</def> <data-reader>#js</data-reader> {})
129130
")
130131

131-
(defn -getPreviewEditorCustomizer [_])
132-
(defn -customizeColorScheme [_ scheme] scheme)
133-
(defn -getAdditionalInlineElementToDescriptorMap [_])
134-
(defn -getAdditionalHighlightingTagToColorKeyMap [_])
132+
(getPreviewEditorCustomizer [_])
133+
(customizeColorScheme [_ scheme] scheme)
134+
(getAdditionalInlineElementToDescriptorMap [_])
135+
(getAdditionalHighlightingTagToColorKeyMap [_]))
Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
(ns com.github.clojure-lsp.intellij.extension.commenter
2-
(:gen-class
3-
:name com.github.clojure_lsp.intellij.extension.Commenter
4-
:implements [com.intellij.lang.Commenter])
2+
(:require
3+
[com.github.ericdallo.clj4intellij.extension :refer [def-extension]])
54
(:import
5+
[com.intellij.lang Commenter]
66
[com.intellij.util.containers ContainerUtil]))
77

88
(set! *warn-on-reflection* true)
99

10-
(defn -getLineCommentPrefix [_] ";;")
11-
(defn -getBlockCommentPrefix [_] nil)
12-
(defn -getBlockCommentSuffix [_] nil)
13-
(defn -getCommentedBlockCommentPrefix [_] nil)
14-
(defn -getCommentedBlockCommentSuffix [_] nil)
15-
(defn -getLineCommentPrefixes [this]
16-
(ContainerUtil/createMaybeSingletonList (-getLineCommentPrefix this)))
10+
(def ^:private comment-single-line ";; ")
11+
12+
(def-extension ClojureCommenter []
13+
Commenter
14+
(getLineCommentPrefix [_] comment-single-line)
15+
(getBlockCommentPrefix [_] nil)
16+
(getBlockCommentSuffix [_] nil)
17+
(getCommentedBlockCommentPrefix [_] nil)
18+
(getCommentedBlockCommentSuffix [_] nil)
19+
(getLineCommentPrefixes [_]
20+
(ContainerUtil/createMaybeSingletonList comment-single-line)))
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
(ns com.github.clojure-lsp.intellij.extension.dictionary
2+
(:require
3+
[com.github.ericdallo.clj4intellij.extension :refer [def-extension]])
4+
(:import
5+
[com.intellij.spellchecker BundledDictionaryProvider]))
6+
7+
(def-extension ClojureBundledDictionaryProvider []
8+
BundledDictionaryProvider
9+
(getBundledDictionaries [_]
10+
(into-array ["clojure.dic"])))

src/main/clojure/com/github/clojure_lsp/intellij/extension/general_settings.clj

Lines changed: 43 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
(ns com.github.clojure-lsp.intellij.extension.general-settings
2-
(:gen-class
3-
:name com.github.clojure_lsp.intellij.extension.GeneralSettingsConfigurable
4-
:implements [com.intellij.openapi.options.Configurable])
52
(:require
63
[clojure.pprint :as pprint]
74
[clojure.string :as str]
@@ -10,11 +7,13 @@
107
[com.github.clojure-lsp.intellij.db :as db]
118
[com.github.clojure-lsp.intellij.server :as server]
129
[com.github.clojure-lsp.intellij.settings :as settings]
10+
[com.github.ericdallo.clj4intellij.extension :refer [def-extension]]
1311
[seesaw.color :as s.color]
1412
[seesaw.core :as s]
1513
[seesaw.font :as s.font]
1614
[seesaw.mig :as s.mig])
1715
(:import
16+
[com.intellij.openapi.options Configurable]
1817
[com.intellij.ui IdeBorderFactory]
1918
[java.awt Toolkit]
2019
[java.awt.datatransfer StringSelection]))
@@ -93,48 +92,50 @@
9392
:foreground (s.color/color 110 110 110)) "wrap"]]
9493
(remove nil?)))))
9594

96-
(defn -createComponent [_]
97-
(let [project (first (db/all-projects))
98-
server-info (lsp-client/server-info project)
99-
component (build-component server-info)]
100-
(reset! component* component)
101-
component))
95+
(def-extension GeneralSettingsConfigurable []
96+
Configurable
97+
(createComponent [_]
98+
(let [project (first (db/all-projects))
99+
server-info (lsp-client/server-info project)
100+
component (build-component server-info)]
101+
(reset! component* component)
102+
component))
102103

103-
(defn -getPreferredFocusedComponent [_]
104-
(s/select @component* [:#copy-server-info]))
104+
(getPreferredFocusedComponent [_]
105+
(s/select @component* [:#copy-server-info]))
105106

106-
(defn -isModified [_]
107-
(let [server-path (s/config (s/select @component* [:#server-path]) :text)
108-
trace-level-combo-box (s/config (s/select @component* [:#trace-level]) :selected-item)
109-
server-log-path (s/config (s/select @component* [:#server-log]) :text)]
110-
(boolean
111-
(or (not= server-path (or (settings/server-path) ""))
112-
(not= trace-level-combo-box (settings/server-trace-level))
113-
(not= server-log-path (or (settings/server-log-path) ""))
114-
(and (str/blank? server-log-path)
115-
(settings/server-log-path))))))
107+
(isModified [_]
108+
(let [server-path (s/config (s/select @component* [:#server-path]) :text)
109+
trace-level-combo-box (s/config (s/select @component* [:#trace-level]) :selected-item)
110+
server-log-path (s/config (s/select @component* [:#server-log]) :text)]
111+
(boolean
112+
(or (not= server-path (or (settings/server-path) ""))
113+
(not= trace-level-combo-box (settings/server-trace-level))
114+
(not= server-log-path (or (settings/server-log-path) ""))
115+
(and (str/blank? server-log-path)
116+
(settings/server-log-path))))))
116117

117-
(defn -reset [_]
118-
(let [project (first (db/all-projects))
119-
server-info (lsp-client/server-info project)
120-
trace-level-combo-box (settings/server-trace-level)
121-
server-log-path (or (settings/server-log-path) (:log-path server-info))
122-
server-path (or (settings/server-path) (.getCanonicalPath (config/download-server-path)))]
123-
(s/config! (s/select @component* [:#trace-level]) :selected-item trace-level-combo-box)
124-
(s/config! (s/select @component* [:#server-log]) :text server-log-path)
125-
(s/config! (s/select @component* [:#server-path]) :text server-path)))
118+
(reset [_]
119+
(let [project (first (db/all-projects))
120+
server-info (lsp-client/server-info project)
121+
trace-level-combo-box (settings/server-trace-level)
122+
server-log-path (or (settings/server-log-path) (:log-path server-info))
123+
server-path (or (settings/server-path) (.getCanonicalPath (config/download-server-path)))]
124+
(s/config! (s/select @component* [:#trace-level]) :selected-item trace-level-combo-box)
125+
(s/config! (s/select @component* [:#server-log]) :text server-log-path)
126+
(s/config! (s/select @component* [:#server-path]) :text server-path)))
126127

127-
(defn -disposeUIResources [_]
128-
(reset! component* nil))
128+
(disposeUIResources [_]
129+
(reset! component* nil))
129130

130-
(defn -apply [_]
131-
(let [trace-level (s/config (s/select @component* [:#trace-level]) :selected-item)
132-
server-log-path (when (s/config (s/select @component* [:#custom-server-log?]) :selected?)
133-
(s/config (s/select @component* [:#server-log]) :text))
134-
server-path (when (s/config (s/select @component* [:#custom-server-path?]) :selected?)
135-
(s/config (s/select @component* [:#server-path]) :text))]
136-
(settings/set-server-path! server-path)
137-
(settings/set-server-log-path! server-log-path)
138-
(settings/set-server-trace-level! trace-level)))
131+
(apply [_]
132+
(let [trace-level (s/config (s/select @component* [:#trace-level]) :selected-item)
133+
server-log-path (when (s/config (s/select @component* [:#custom-server-log?]) :selected?)
134+
(s/config (s/select @component* [:#server-log]) :text))
135+
server-path (when (s/config (s/select @component* [:#custom-server-path?]) :selected?)
136+
(s/config (s/select @component* [:#server-path]) :text))]
137+
(settings/set-server-path! server-path)
138+
(settings/set-server-log-path! server-log-path)
139+
(settings/set-server-trace-level! trace-level)))
139140

140-
(defn -cancel [_])
141+
(cancel [_]))
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
(ns com.github.clojure-lsp.intellij.extension.init-db-startup
2-
(:gen-class
3-
:name com.github.clojure_lsp.intellij.extension.InitDBStartup
4-
:implements [com.intellij.openapi.startup.StartupActivity
5-
com.intellij.openapi.project.DumbAware])
62
(:require
7-
[com.github.clojure-lsp.intellij.db :as db])
3+
[com.github.clojure-lsp.intellij.db :as db]
4+
[com.github.ericdallo.clj4intellij.extension :refer [def-extension]])
85
(:import
9-
[com.intellij.openapi.project Project]))
6+
[com.intellij.openapi.project Project]
7+
[com.intellij.openapi.startup StartupActivity]))
108

119
(set! *warn-on-reflection* true)
1210

13-
(defn -runActivity [_this ^Project project]
14-
(db/init-db-for-project project))
11+
(def-extension InitDBStartup []
12+
StartupActivity
13+
(runActivity [_this ^Project project]
14+
(db/init-db-for-project project)))

0 commit comments

Comments
 (0)