-
-
Save me7/623dc6c76954ad4601eb to your computer and use it in GitHub Desktop.
Clojure stuff for Sublime Text 2. Files live in ~/Application Support/Sublime Text 2/Packages/User
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Show hidden characters
// installed Clojure packages: | |
// | |
// * BracketHighlighter | |
// * lispindent | |
// * SublimeREPL | |
// * sublime-paredit | |
{ | |
"word_separators": "/\\()\"',;!@$%^&|+=[]{}`~?", | |
"paredit_enabled": true, | |
"paredit_dont_match_single_quotes": true | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import re, sublime, sublime_plugin, sublimerepl, text_transfer | |
class RefreshNamespacesInReplCommand(text_transfer.ReplTransferCurrent): | |
def run(self, edit): | |
text = "(clojure.tools.namespace.repl/refresh)" | |
self.view.window().run_command("repl_send", {"external_id": self.repl_external_id(), "text": text, "file_name": self.view.file_name()}) | |
class SwitchToCurrentNamespaceInReplCommand(text_transfer.ReplTransferCurrent): | |
def run(self, edit): | |
if sublimerepl.manager.repl_view(self.view): | |
return | |
ns = re.sub("ns\s*", "", self.view.substr(self.view.find("ns\s*\S+",0))) | |
text = "(in-ns '" + ns + ")" | |
self.view.window().run_command("repl_send", {"external_id": self.repl_external_id(), "text": text, "file_name": self.view.file_name()}) | |
class RunAllClojureTestsFromProjectInReplCommand(text_transfer.ReplTransferCurrent): | |
def run(self, edit): | |
form = "(do (clojure.tools.namespace.repl/refresh) (apply clojure.test/run-tests (clojure.tools.namespace.find/find-namespaces-in-dir (clojure.java.io/file \"test\"))))" | |
self.view.window().run_command("refresh_namespaces_in_repl") | |
self.view.window().run_command("repl_send", {"external_id": self.repl_external_id(), "text": form, "file_name": self.view.file_name()}) | |
class RunClojureTestsFromCurrentNamespaceInReplCommand(text_transfer.ReplTransferCurrent): | |
def run(self, edit): | |
if sublimerepl.manager.repl_view(self.view): | |
return | |
ns = re.sub("ns\s*", "", self.view.substr(self.view.find("ns\s*\S+",0))) | |
default_test_ns = re.sub("(.*)(?<!-test)\\Z","\\1-test", ns, 1) | |
alt_style_test_ns = re.sub("\A([^\\.]*\\.)(?!test)","\\1test.", ns, 1) | |
form = "(try (clojure.test/run-tests '" + default_test_ns + ")\n (catch Exception e\n (clojure.test/run-tests '" + alt_style_test_ns + ")))" | |
self.view.window().run_command("refresh_namespaces_in_repl") | |
self.view.window().run_command("repl_send", {"external_id": self.repl_external_id(), "text": form, "file_name": self.view.file_name()}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[ | |
{ "keys": ["escape"], "command": "auto_complete", "context": | |
[ | |
{ "key": "auto_complete_visible", "operator": "equal", "operand": false }, | |
{ "key": "overlay_visible", "operator": "equal", "operand": false }, | |
{ "key": "panel_visible", "operator": "equal", "operand": false }, | |
{ "key": "num_selections", "operator": "equal", "operand": 1 } | |
] | |
}, | |
{ "keys": ["super+shift+t"], "command": "reopen_last_file" }, | |
{ "keys": ["ctrl+super+r"], "command": "reveal_in_side_bar" }, | |
// SublimeREPL bindings: | |
// ===================== | |
{ "keys": ["alt+super+b"], "command": "repl_transfer_current", "args": {"scope": "block"}}, | |
{ "keys": ["alt+super+r"], "command": "refresh_namespaces_in_repl"}, | |
{ "keys": ["alt+super+i"], "command": "switch_to_current_namespace_in_repl"}, | |
{ "keys": ["alt+super+x"], "command": "run_clojure_tests_from_current_namespace_in_repl"}, | |
{ "keys": ["alt+super+a"], "command": "run_all_clojure_tests_from_project_in_repl"}, | |
// BracketHighlighter bindings: | |
// =========================== | |
// Swap bracket type | |
{ "keys": ["ctrl+shift+]"], | |
"command": "swap_brackets"}, | |
// Swap quotes (only goes boths ways in supported languages...) | |
{ "keys": ["ctrl+shift+'"], | |
"command": "bh_key", "args": {"lines" : true, "plugin": {"type": ["single_quote", "double_quote", "py_single_quote", "py_double_quote"], "command": "bh_modules.swapquotes"} }}, | |
// Select text between brackets | |
{ "keys": ["ctrl+alt+a"], | |
"command": "bh_key", "args": {"lines" : true, "plugin": {"type": ["__all__"], "command": "bh_modules.bracketselect"} } }, | |
// Select tag name of HTML/XML tag (both opening name and closing) | |
{ "keys": ["ctrl+alt+t"], | |
"command": "bh_key", "args": {"plugin": {"type": ["cfml", "html", "angle"], "command": "bh_modules.tagnameselect"} } }, | |
// Toggle high visibility mode | |
{ "keys": ["alt+super+="], | |
"command": "bh_toggle_high_visibility"}, | |
// sublime-paredit fixes: | |
// ====================== | |
// Don't constrain close-parens unless we're in paredit mode: | |
{ "keys": [")"], "command": "insert_snippet", "args": {"contents": ")"}, "context": | |
[{ "key": "setting.paredit_enabled", "operator": "equal", "operand": false }]}, | |
{ "keys": [")"], "command": "run_macro_file", "args": {"file": "Packages/sublime-paredit/Paredit Closing Bracket.sublime-macro_"}, "context": | |
[{ "key": "setting.paredit_enabled", "operator": "equal", "operand": true }]}, | |
{ "keys": [")"], "command": "move", "args": {"by": "characters", "forward": true}, "context": | |
[ | |
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true }, | |
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true }, | |
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\)", "match_all": true } | |
] | |
} | |
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"theme": "Flatland.sublime-theme", | |
"color_scheme": "Packages/Theme - Flatland/Flatland.tmTheme", | |
"font_face": "Inconsolata", | |
"font_size": 18.5, | |
"caret_style": "wide", | |
"highlight_line": true, | |
"match_brackets": false, // otherwise it gets confusing with BracketHighlighter installed | |
"draw_indent_guides": true, | |
"ignored_packages": ["Vintage", "PHP"], | |
"tab_size": 2, | |
"detect_indentation": false, | |
"translate_tabs_to_spaces": true | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"default_extend_env": {"PATH": "/opt/boxen/homebrew/bin:{PATH}:/usr/local/bin"} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment