Skip to content

Commit 06a8b02

Browse files
authored
Merge pull request #133 from clj-commons/nb/clj-kondo
2 parents 904630b + be5ebfb commit 06a8b02

19 files changed

+239
-244
lines changed

.clj-kondo/config.edn

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{:linters {:unused-binding {:level :off}
2+
:unused-import {:level :off}
3+
:unused-namespace {:level :off}}
4+
:lint-as {clooj.utils/when-lets clojure.core/let}
5+
:output {:linter-name true}}

project.clj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
(defproject clooj "0.5"
22
:description "clooj, a small IDE for clojure"
3-
:url "https://github.com/arthuredelstein/clooj"
3+
:url "https://github.com/clj-commons/clooj"
44
:license {:name "Eclipse Public License"
55
:url "http://www.eclipse.org/legal/epl-v10.html"}
66
:main clooj.core

src/clooj/brackets.clj

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
(loop [t text pos 0 stack nil errs nil]
4848
(let [c (first t) ;this char
4949
new-stack (process-bracket-stack stack c pos)
50-
e (if (mismatched-brackets (ffirst stack) c)
50+
e (when (mismatched-brackets (ffirst stack) c)
5151
(list (first stack) [c pos]))
5252
new-errs (if e (concat errs e) errs)]
5353
(if (next t)

src/clooj/cemerick/pomegranate.clj

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ unless you are extending a type to this protocol."
4545
[sym & body]
4646
(when (resolve sym) `(do ~@body)))
4747

48-
(when-resolves sun.misc.Launcher
48+
(when-resolves sun.misc.Launcher
4949
(extend sun.misc.Launcher$ExtClassLoader URLClasspath
5050
(assoc url-classloader-base
5151
:can-modify? (constantly false))))

src/clooj/collaj.clj

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"URL-encode a string."
1212
[s]
1313
(URLEncoder/encode s "UTF-8"))
14-
14+
1515
(defn raw-data
1616
"Get a clojure data collection of raw search
1717
results from collaj.net"

src/clooj/core.clj

+66-69
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
(javax.swing.tree DefaultMutableTreeNode DefaultTreeModel
1717
TreePath TreeSelectionModel)
1818
(java.awt Insets Rectangle Window)
19-
(java.awt.event AWTEventListener FocusAdapter
20-
MouseAdapter WindowAdapter
19+
(java.awt.event AWTEventListener FocusAdapter
20+
MouseAdapter WindowAdapter
2121
ActionListener KeyAdapter)
2222
(java.awt AWTEvent Color Font GridLayout Toolkit)
2323
(java.net URL)
@@ -26,7 +26,7 @@
2626
(java.io File FileReader StringReader
2727
BufferedWriter OutputStreamWriter FileOutputStream)
2828
(org.fife.ui.rsyntaxtextarea RSyntaxTextArea SyntaxConstants
29-
TokenMakerFactory)
29+
TokenMakerFactory)
3030
(org.fife.ui.rtextarea RTextScrollPane))
3131
(:require [clojure.set]
3232
[clooj.repl.main :as repl]
@@ -55,7 +55,7 @@
5555
(extend-type RSyntaxTextArea
5656
DynamicWordHighlighter
5757
(addWordToHighlight [word token-type]))
58-
58+
5959
(defn make-rsyntax-text-area []
6060
(let [tmf (TokenMakerFactory/getDefaultInstance)
6161
token-maker (.getTokenMaker tmf "text/clojure")
@@ -67,7 +67,7 @@
6767
token-type)))]
6868
(.. rsta getDocument (setTokenMakerFactory tmf))
6969
rsta))
70-
70+
7171
(defn make-text-area [wrap]
7272
(doto (RSyntaxTextArea.)
7373
(.setAnimateBracketMatching false)
@@ -90,8 +90,8 @@
9090
;; settings
9191

9292
(def default-settings
93-
(merge
94-
(zipmap [:font-name :font-size]
93+
(merge
94+
(zipmap [:font-name :font-size]
9595
(cond (utils/is-mac) ["Monaco" 11]
9696
(utils/is-win) ["Courier New" 12]
9797
:else ["Monospaced" 12]))
@@ -107,39 +107,37 @@
107107
(utils/read-value-from-prefs utils/clooj-prefs "settings"))))
108108

109109
(defn save-settings [settings]
110-
(utils/write-value-to-prefs
111-
utils/clooj-prefs
110+
(utils/write-value-to-prefs
111+
utils/clooj-prefs
112112
"settings"
113113
settings))
114114

115115
(defn apply-settings [app settings]
116-
117-
(defn set-line-wrapping [text-area mode]
118-
(.setLineWrap text-area mode))
119-
120-
(defn set-font
121-
[app font-name size]
122-
(let [f (Font. font-name Font/PLAIN size)]
123-
(utils/awt-event
124-
(dorun (map #(.setFont (app %) f)
125-
[:doc-text-area :repl-in-text-area
126-
:repl-out-text-area :arglist-label
127-
:search-text-area :help-text-area
128-
:completion-list])))))
129-
130-
(set-line-wrapping
131-
(:doc-text-area app)
132-
(:line-wrap-doc settings))
133-
(set-line-wrapping
134-
(:repl-in-text-area app)
135-
(:line-wrap-repl-in settings))
136-
(set-line-wrapping
137-
(:repl-out-text-area app)
138-
(:line-wrap-repl-out settings))
139-
140-
(set-font app
141-
(:font-name settings)
142-
(:font-size settings))
116+
(letfn [(set-line-wrapping [text-area mode]
117+
(.setLineWrap text-area mode))
118+
(set-font
119+
[app font-name size]
120+
(let [f (Font. font-name Font/PLAIN size)]
121+
(utils/awt-event
122+
(dorun (map #(.setFont (app %) f)
123+
[:doc-text-area :repl-in-text-area
124+
:repl-out-text-area :arglist-label
125+
:search-text-area :help-text-area
126+
:completion-list])))))]
127+
128+
(set-line-wrapping
129+
(:doc-text-area app)
130+
(:line-wrap-doc settings))
131+
(set-line-wrapping
132+
(:repl-in-text-area app)
133+
(:line-wrap-repl-in settings))
134+
(set-line-wrapping
135+
(:repl-out-text-area app)
136+
(:line-wrap-repl-out settings))
137+
138+
(set-font app
139+
(:font-name settings)
140+
(:font-size settings)))
143141
(reset! (:settings app) settings)
144142
(save-settings settings))
145143

@@ -206,7 +204,7 @@
206204
(highlighting/highlight-brackets text-comp good-enclosures bad-brackets)))))
207205
(catch Throwable t (utils/awt-event (.printStackTrace t))))))
208206
(when ns
209-
(send-off arglist-agent
207+
(send-off arglist-agent
210208
(fn [old-pos]
211209
(try
212210
(let [pos (@caret-position text-comp)]
@@ -215,7 +213,7 @@
215213
(help/arglist-from-caret-pos app ns text pos)]
216214
(utils/awt-event (.setText (:arglist-label app) arglist-text)))))
217215
(catch Throwable t (utils/awt-event (.printStackTrace t)))))))))
218-
216+
219217
;; highlighting
220218

221219
(defn activate-caret-highlighter [app]
@@ -245,7 +243,7 @@
245243
;; temp files
246244

247245
(defn dump-temp-doc [app orig-f txt]
248-
(try
246+
(try
249247
(when orig-f
250248
(let [orig (.getAbsolutePath orig-f)
251249
f (.getAbsolutePath (project/get-temp-file orig-f))]
@@ -268,7 +266,7 @@
268266
(dump-temp-doc app f txt))
269267
pos)
270268
(catch Throwable t (utils/awt-event (.printStackTrace t))))))))
271-
269+
272270
(defn setup-temp-writer [app]
273271
(let [text-comp (:doc-text-area app)]
274272
(utils/add-text-change-listener text-comp
@@ -283,7 +281,7 @@
283281
last-dot (.lastIndexOf name ".")
284282
suffix (.substring name (inc last-dot))]
285283
suffix))
286-
284+
287285
(defn text-file? [f]
288286
(not (some #{(file-suffix f)}
289287
["jar" "class" "dll" "jpg" "png" "bmp"])))
@@ -310,7 +308,7 @@
310308
(not= f @(app :file))
311309
(text-file? f))
312310
(restart-doc app f))))))))))
313-
311+
314312
;; build gui
315313

316314
(defn make-scroll-pane [text-area]
@@ -322,7 +320,7 @@
322320
(doto (:search-close-button app)
323321
(.setVisible false)
324322
(.setBorder nil)
325-
(.addActionListener
323+
(.addActionListener
326324
(reify ActionListener
327325
(actionPerformed [_ _] (search/stop-find app)))))
328326
(let [sta (doto (app :search-text-area)
@@ -343,7 +341,7 @@
343341
(.addWindowListener f
344342
(proxy [WindowAdapter] []
345343
(windowClosing [_]
346-
(save-caret-position app)
344+
(save-caret-position app)
347345
(System/exit 0))))))
348346

349347
(def no-project-txt
@@ -358,20 +356,19 @@
358356
(select the File > New menu), or
359357
b. open an existing file
360358
(click on it in the tree at left).")
361-
359+
362360
(def no-file-txt
363361
"To edit source code you need to either: <br>
364-
&nbsp;1. create a new file
362+
&nbsp;1. create a new file
365363
(select menu <b>File > New...</b>)<br>
366364
&nbsp;2. edit an existing file by selecting one at left.</html>")
367365

368-
(defn move-caret-to-line [textarea]
366+
(defn move-caret-to-line
369367
"Move caret to choosen line"
370-
371-
(defn current-line []
372-
(inc (.getLineOfOffset textarea (.getCaretPosition textarea))))
373-
374-
(let [line-str (utils/ask-value "Line number:" "Go to Line")
368+
[textarea]
369+
(let [current-line (fn []
370+
(inc (.getLineOfOffset textarea (.getCaretPosition textarea))))
371+
line-str (utils/ask-value "Line number:" "Go to Line")
375372
line-num (Integer.
376373
(if (or (nil? line-str) (nil? (re-find #"\d+" line-str)))
377374
(current-line)
@@ -396,13 +393,13 @@
396393
(utils/attach-action-keys comp
397394
["cmd1 EQUALS" #(grow-font app)]
398395
["cmd1 shift EQUALS" #(grow-font app)]
399-
["cmd1 PLUS" #(grow-font app)]
396+
["cmd1 PLUS" #(grow-font app)]
400397
["cmd2 MINUS" #(.toBack (:frame app))]
401398
["cmd2 PLUS" #(.toFront (:frame app))]
402399
["cmd2 EQUALS" #(.toFront (:frame app))]
403400
["cmd1 shift O" #(open-project app)]
404401
["cmd1 K"#(.setText (app :repl-out-text-area) "")]))
405-
402+
406403
(defn on-window-activation [win fun]
407404
(.addWindowListener win
408405
(proxy [WindowAdapter] []
@@ -587,7 +584,7 @@
587584
(.read text-area rdr nil))
588585
(.discardAllEdits text-area)
589586
(.setText doc-label (str "Source Editor \u2014 " (.getPath file)))
590-
(.setEditable text-area true)
587+
(.setEditable text-area true)
591588
(.setSyntaxEditingStyle text-area
592589
(let [file-name (.getName file-to-open)]
593590
(if (or (.endsWith file-name ".clj")
@@ -597,7 +594,7 @@
597594
(do (.setText text-area no-project-txt)
598595
(.setText doc-label (str "Source Editor (No file selected)"))
599596
(.setEditable text-area false)))
600-
597+
601598
(indent/setup-autoindent text-area)
602599
(reset! (app :file) file)
603600
(load-caret-position app)
@@ -628,7 +625,7 @@
628625
:description \"FIXME: write description\"
629626
:dependencies [[org.clojure/clojure \"1.5.1\"]])
630627
"))
631-
628+
632629
(defn specify-source [project-dir title default-namespace]
633630
(when-let [namespace (JOptionPane/showInputDialog nil
634631
"Please enter a fully-qualified namespace"
@@ -644,7 +641,7 @@
644641
the-dir (File. project-dir dirstring)]
645642
(.mkdirs the-dir)
646643
[(File. the-dir (str name ".clj")) namespace])))
647-
644+
648645
(defn create-file [app project-dir default-namespace]
649646
(when-let [[file namespace] (specify-source project-dir
650647
"Create a source file"
@@ -674,7 +671,7 @@
674671
"Unable to create project."
675672
"Oops" JOptionPane/ERROR_MESSAGE)
676673
(.printStackTrace e)))))
677-
674+
678675
(defn rename-file [app]
679676
(when-let [old-file @(app :file)]
680677
(let [tree (app :docs-tree)
@@ -707,30 +704,30 @@
707704
(defn revert-file [app]
708705
(when-let [f @(:file app)]
709706
(let [temp-file (project/get-temp-file f)]
710-
(when (.exists temp-file))
707+
(when (.exists temp-file)
711708
(let [path (.getAbsolutePath f)]
712709
(when (utils/confirmed? "Revert the file? This cannot be undone." path)
713710
(.delete temp-file)
714711
(project/update-project-tree (:docs-tree app))
715-
(restart-doc app f))))))
712+
(restart-doc app f)))))))
716713

717714
(defn- dir-rank [dir]
718715
(get {"src" 0 "test" 1 "lib" 2} (.getName dir) 100))
719716

720717
(defn- find-file [project-path relative-file-path]
721718
(let [classpath-dirs (sort-by dir-rank < (utils/get-directories (File. project-path)))
722-
file-candidates (map
723-
#(File. (str (.getAbsolutePath %) File/separatorChar relative-file-path))
719+
file-candidates (map
720+
#(File. (str (.getAbsolutePath %) File/separatorChar relative-file-path))
724721
classpath-dirs)]
725722
(first (filter #(and (.exists %) (.isFile %)) file-candidates))))
726723

727724
(defn goto-definition [ns app]
728725
(let [text-comp (:doc-text-area app)
729726
pos (.getCaretPosition text-comp)
730727
text (.getText text-comp)
731-
src-file (:file (meta (do (help/token-from-caret-pos ns text pos) nil)))
728+
src-file (:file (meta (do (help/token-from-caret-pos text pos) nil)))
732729
line (:line (meta (do (find-ns (symbol ns))
733-
(help/token-from-caret-pos ns text pos) nil)))
730+
(help/token-from-caret-pos text pos) nil)))
734731
project-path (first (project/get-selected-projects app))
735732
file (find-file project-path src-file)]
736733
(when (and file line)
@@ -764,7 +761,7 @@
764761
["Indent lines" "I" "cmd1 CLOSE_BRACKET" #(utils/indent (:doc-text-area app))]
765762
["Unindent lines" "D" "cmd1 OPEN_BRACKET" #(utils/unindent (:doc-text-area app))]
766763
["Name search/docs" "S" "TAB" #(help/show-tab-help app (help/find-focused-text-pane app) inc)]
767-
["Go to line..." "G" "cmd1 L" #(move-caret-to-line (:doc-text-area app))]
764+
["Go to line..." "G" "cmd1 L" #(move-caret-to-line (:doc-text-area app))]
768765
;["Go to definition" "G" "cmd1 D" #(goto-definition (repl/get-file-ns app) app)]
769766
)
770767
(utils/add-menu menu-bar "REPL" "R"
@@ -787,8 +784,8 @@
787784
["Decrease font size" nil "cmd1 MINUS" #(shrink-font app)]
788785
["Settings" nil nil #(settings/show-settings-window
789786
app apply-settings)])))
790-
791-
787+
788+
792789
(defn add-visibility-shortcut [app]
793790
(let [shortcuts [(map utils/get-keystroke ["cmd2 EQUALS" "cmd2 PLUS"])]]
794791
(.. Toolkit getDefaultToolkit
@@ -818,7 +815,7 @@
818815
(help/setup-tab-help (app :repl-in-text-area) app)
819816
(doall (map #(project/add-project app %) (project/load-project-set)))
820817
(let [frame (app :frame)]
821-
(utils/persist-window-shape utils/clooj-prefs "main-window" frame)
818+
(utils/persist-window-shape utils/clooj-prefs "main-window" frame)
822819
(utils/enable-mac-fullscreen frame)
823820
(.setVisible frame true)
824821
(on-window-activation frame #(project/update-project-tree (app :docs-tree))))

0 commit comments

Comments
 (0)