Pep
Elemental Clojure & ClojureScript code navigation, documentation, and usages analysis for Sublime Text.
Details
Installs
- Total 56
- Win 24
- Mac 21
- Linux 11
Dec 3 | Dec 2 | Dec 1 | Nov 30 | Nov 29 | Nov 28 | Nov 27 | Nov 26 | Nov 25 | Nov 24 | Nov 23 | Nov 22 | Nov 21 | Nov 20 | Nov 19 | Nov 18 | Nov 17 | Nov 16 | Nov 15 | Nov 14 | Nov 13 | Nov 12 | Nov 11 | Nov 10 | Nov 9 | Nov 8 | Nov 7 | Nov 6 | Nov 5 | Nov 4 | Nov 3 | Nov 2 | Nov 1 | Oct 31 | Oct 30 | Oct 29 | Oct 28 | Oct 27 | Oct 26 | Oct 25 | Oct 24 | Oct 23 | Oct 22 | Oct 21 | Oct 20 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Mac | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
Linux | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Readme
- Source
- raw.githubusercontent.com
Pep
Pep leverages clj-kondo analysis data to provide code navigation, documentation and usages analysis.
clj-kondo is the sole dependency, and everything else is supplied by built-in Sublime Text APIs.
[!NOTE] I have worked on Pep for over two years, but I still consider it alpha.
Command | Description |
---|---|
pg_pep_analyze |
Analyze view, paths or classpath |
pg_pep_outline |
Show symbols defined in the namespace - it might also be known as 'file structure' |
pg_pep_goto_anything_in_classpath |
Go to anything in the classpath |
pg_pep_goto_anything_in_view_paths |
Go to anything in view or paths |
pg_pep_goto_namespace |
Go to namespace in paths |
pg_pep_goto_definition |
Go to definition of symbol or keyword under the cursor |
pg_pep_goto_warning_error_in_view |
Go to clj-kondo analysis finding (warning or error) |
pg_pep_goto_require_import_in_view |
Go to require or import for symbol under the cursor |
pg_pep_goto_namespace_usage_in_view |
Go to usage of namespace in view |
pg_pep_show_doc |
Show documentation in a popup for symbol under the cursor |
pg_pep_jump |
Jump to occurrences of symbol or keyword under the cursor |
pg_pep_find_usages |
Find usages of symbol or keyword under the cursor |
pg_pep_select |
Select occurrences of symbol or keyword under the cursor |
pg_pep_replace |
Replace occurrences of symbol or keyword under the cursor |
pg_pep_highlight |
Highlight occurrences of symbol or keyword under the cursor |
pg_pep_copy_name |
Copy name of keyword or symbol to the clipboard |
pg_pep_show_name |
Show name of keyword or symbol in a popup |
Pep is part of my Clojure(Script) development setup, combined with Tutkain, so I think it's developed enough to be helpful.
You're welcome to try it, and I would be happy to hear if it works for you. If it doesn't work for you, I ask you to please create an issue, and I will do my best to address it.
Installation
Pep is available on PackageControl.
Annotate (Lint)
Highlight
Highlight the symbol or keyword under the cursor and its usage.
Documentation
Show documentation for var under the cursor.
Jump
Jump to occurrences of symbol or keyword under cursor.
Find Usages
Find usages of symbol or keyword under cursor.
Select
Select occurrences of symbol or keyword under cursor.
It behaves like an 'intelligent multi cursor, and you can use it to rename symbols.
Goto Definition
Goto definition of a local binding, var, spec, re-frame handler.
Settings
Default settings
{
"debug": false,
"clj_kondo_path": "clj-kondo",
"analysis_applicable_to": ["Packages/Clojure/Clojure.sublime-syntax",
"Packages/Clojure/ClojureScript.sublime-syntax",
"Packages/Tutkain/EDN (Tutkain).sublime-syntax",
"Packages/Tutkain/Clojure (Tutkain).sublime-syntax",
"Packages/Tutkain/ClojureScript (Tutkain).sublime-syntax",
"Packages/Tutkain/Clojure Common (Tutkain).sublime-syntax",
"Packages/Tutkain/Babashka (Tutkain).sublime-syntax",
"Packages/Clojure Sublimed/Clojure (Sublimed).sublime-syntax"],
// Number of seconds to delay the analysis after a view is modified.
"analysis_delay": 0.6,
// It's unlikely to need to analyze scratch views,
// but you can run the command to analyze a view if you need it.
"analyze_scratch_view": false,
// True if you would like to analyse your project's sources when the plugin is loaded.
// (Doesn't do anything if there isn't a *.sublime-project file.)
"analyze_paths_on_plugin_loaded": true,
// True if you would like to analyze your project's sources when the project is loaded.
// (Doesn't do anything if there isn't a *.sublime-project file.)
"analyze_paths_on_load_project": true,
// True if you would like to analyse your project's classpath when the plugin is loaded.
// (Doesn't do anything if there isn't a *.sublime-project file.)
"analyze_classpath_on_plugin_loaded": true,
// True if you would like to analyze your project's classpath when the project is loaded.
// (Doesn't do anything if there isn't a *.sublime-project file.)
"analyze_classpath_on_load_project": true,
// True if warnings/errors should be displayed right after the analysis is completed.
// It's a 'tighter feedback loop' to display warnings/errors after the analysis, but some might find it distracting.
"annotate_view_after_analysis": false,
// True if warnings/errors should be displayed only when a view is saved.
"annotate_view_on_save": false,
// The font-size used by view analysis annotations.
"annotation_font_size": "0.9em",
// True if you would like to see the number of clj-kondo errors, if any, in the status bar.
"view_status_show_errors": false,
// True if you would like to see the number of clj-kondo warnings, if any, in the status bar.
"view_status_show_warnings": false,
// True if you would like to see the number of highlighted regions in the status bar.
"view_status_show_highlighted": false,
// If you would like to add a custom prefix to the number of highlighted regions in the status bar.
"view_status_show_highlighted_prefix": "Highlighted: ",
// If you would like to add a custom suffix to the number of highlighted regions in the status bar.
"view_status_show_highlighted_suffix": "",
// True if you would like to highlight vars, local bindings and keywords usages.
"automatically_highlight": false,
// True if you would like to highlight the region under the cursor.
"highlight_self": true,
// True if you would like to highlight the region with an outline.
"highlight_region": true,
// True if you would like to highlight the gutter.
"highlight_gutter": false,
}
Recommended settings
{
// True if warnings/errors should be displayed right after the analysis is completed.
"annotate_view_after_analysis": true,
// True if you would like to see the number of clj-kondo errors, if any, in the status bar.
"view_status_show_errors": true,
// True if you would like to see the number of clj-kondo warnings, if any, in the status bar.
"view_status_show_warnings": true,
// True if you would like to highlight vars, local bindings and keywords usages.
"automatically_highlight": true
}
Sublime Project
To analyse your project's classpath and paths (your files), you need to configure Pep in your Sublime Project.
If you configure paths
, you can go to definition, show documentation and find usages across files in your project.
A paths analysis usually doesn't take long and will run when Pep is loaded or a project is loaded - see Settings "analyze_paths"
.
If you configure classpath
, you can go to definition and show documentation of vars defined in libraries.
Classpath analysis takes a little longer and will run when Pep is loaded, or a project is loaded - see Settings "analyze_classpath"
.
Sublime Project example:
{
"pep": {
"paths": ["src"],
"classpath": "clojure -Spath"
}
}
Acknowledgements
- Eero and Tutkain; without Eero and Tutkain, I would not have started this project.
- Michiel Borkent and clj-kondo; this project wouldn't be possible without clj-kondo.
- Peter and Calva; Peter was too kind and allowed me to contribute to Calva in the early days and showed me how fun it is to work on these things.
- The Sublime Text Discord community, a magnificent bunch of volunteers and Sublime HQ employees tirelessly helping people with questions related to Sublime Text. (Copied from Tutkain because I could not say it better.)