All Projects → sivertsenstian → Visualclojure

sivertsenstian / Visualclojure

Licence: mit

Programming Languages

javascript
184084 projects - #8 most used programming language
clojure
4091 projects
clojurescript
191 projects

Projects that are alternatives of or similar to Visualclojure

Luapanda
lua debug and code tools for VS Code
Stars: ✭ 738 (+6050%)
Mutual labels:  vscode-extension
Hxcpp Debugger
Visual Studio Code Debugger for Haxe/HXCPP applications
Stars: ✭ 18 (+50%)
Mutual labels:  vscode-extension
Vscode Unity Code Snippets
All snippets for Unity3D development
Stars: ✭ 26 (+116.67%)
Mutual labels:  vscode-extension
Coderoad Vscode
👩‍💻 Create or play Interactive coding tutorials in VSCode
Stars: ✭ 757 (+6208.33%)
Mutual labels:  vscode-extension
Vscode Bookmarks
Bookmarks Extension for Visual Studio Code
Stars: ✭ 804 (+6600%)
Mutual labels:  vscode-extension
Aws Step Functions Constructor
VSCode extension to visualize AWS step functions
Stars: ✭ 22 (+83.33%)
Mutual labels:  vscode-extension
Vscode Peacock
Subtly change the color of your Visual Studio Code workspace. Ideal when you have multiple VS Code instances, use VS Live Share, or use VS Code's Remote features, and you want to quickly identify your editor.
Stars: ✭ 690 (+5650%)
Mutual labels:  vscode-extension
Vscode Smarty
Smarty syntax highlight extension for Visual Studio Code
Stars: ✭ 10 (-16.67%)
Mutual labels:  vscode-extension
Vscode Create Tests
A vscode extension to quickly create test files.
Stars: ✭ 16 (+33.33%)
Mutual labels:  vscode-extension
Vsc Mikutap
♪♫ ¶(⁄•˅̮•∖)⁋ ♪♬ Mikutap extension for Visual Studio Code
Stars: ✭ 25 (+108.33%)
Mutual labels:  vscode-extension
Vscode Git Graph
View a Git Graph of your repository in Visual Studio Code, and easily perform Git actions from the graph.
Stars: ✭ 767 (+6291.67%)
Mutual labels:  vscode-extension
Vscode Material Icon Theme
Available on the VSCode Marketplace
Stars: ✭ 773 (+6341.67%)
Mutual labels:  vscode-extension
Vscode Laravel Extra Intellisense
This extension adds extra autocompletion for laravel projects to VSCode.
Stars: ✭ 909 (+7475%)
Mutual labels:  vscode-extension
Vscode Sqltools
Database management for VSCode
Stars: ✭ 741 (+6075%)
Mutual labels:  vscode-extension
Vscode Vercel
Keep an eye on ▲ Vercel deployments without ever leaving Visual Studio Code.
Stars: ✭ 27 (+125%)
Mutual labels:  vscode-extension
Vscode Markdown Preview Enhanced
One of the "BEST" markdown preview extensions for Visual Studio Code
Stars: ✭ 701 (+5741.67%)
Mutual labels:  vscode-extension
Vscode As Git Mergetool
VS Code extension providing diff editor layouts & more for 3-way merging
Stars: ✭ 20 (+66.67%)
Mutual labels:  vscode-extension
Vscode Lldb
A native debugger extension for VSCode based on LLDB
Stars: ✭ 866 (+7116.67%)
Mutual labels:  vscode-extension
Vscode Debug Visualizer
An extension for VS Code that visualizes data during debugging.
Stars: ✭ 7,116 (+59200%)
Mutual labels:  vscode-extension
Vscode Badges
Snippets to quickly insert Shield.io badges into HTML, Markdown, reStructuredText or Textile documents
Stars: ✭ 19 (+58.33%)
Mutual labels:  vscode-extension

visual:clojure

How, what and why?

  • Create a nice developer-environment for ClojureScript, that is not dependent on me using Emacs :)
  • Most of the existing extensions that I found had variable/good support for Clojure, but none existed for ClojureScript!

This extension is mostly geared towards creating a nice ClojureScript developer experience, but will actively try to support both clj and cljs as much as possible.

Features

underline error

Current features

  • Intellisense
  • Underlining compile-time errors
  • Go to / Peek at definition
  • View docstrings on hover
  • View function signatures on hover
  • Interactive REPL From visual code
    • Compile files
    • Evaluate forms
  • Supports all clojure filetypes, clj, cljc and cljs.
  • cljc evaluted using clj-REPL session

Future stuff

  • Better error-support for cljs
  • Add more / useful snippets
  • Start REPL directly from code
  • Auto-connect to existing repl using 'repl-port'-file
  • Add signature-provider for better function signature assistance
  • Visualize scoped vars
  • Debugger(?)
  • Other (please add suggestions as issues)

Getting started

Dependencies

  • Uses nrepl for evaluation / communication
  • Uses cider-nrepl for added nrepl functionality
  • Uses piggieback and nrepl middleware cemerick.piggieback/wrap-cljs-repl for clojurescript session support

ClojureScript

Make sure the dependencies is either in your project.clj or profiles.clj. profiles.clj is located in your home/.lein folder, for more information look here.

A sample profiles.clj could look like this:

{:user {:plugins [[cider/cider-nrepl "0.14.0"]]
        :dependencies [[com.cemerick/piggieback "0.2.1"]
                       [org.clojure/tools.nrepl "0.2.10"]]
        :repl-options {:nrepl-middleware [cemerick.piggieback/wrap-cljs-repl]}}}

Clojure

Make sure the dependencies is either in your project.clj or profiles.clj:

A sample profiles.clj could look like this:

{:user {:plugins [[cider/cider-nrepl "0.14.0"]]
        :dependencies [[org.clojure/tools.nrepl "0.2.10"]]}

Initiating a CLJ/CLJS REPL

After installing the extension, and adding the dependencies mentioned above, you should now have access to a set of commands if/when opening a clojure file.

First initiate a repl, the easiest way to do this is opening a terminal and writing lein repl

Lein REPL

Notice the port 49864 generated by REPL at nrepl://localhost:49864 This is what is used to connect to the nREPL from visual code.

If you want to start a ClojureScript REPL-session you can start this from the existing clojure-REPL that we just created.
Using piggieback we can initiate a cljs-repl using e.g. rhino:

Run the following command in the REPL to start a cljs-session with rhino: (cemerick.piggieback/cljs-repl (cljs.repl.rhino/repl-env))

ClojureScript REPL

However most people use figwheel when developing in ClojureScript. It is just as easy to connect to the cljs-repl provided by figwheel!
You need to start the initial repl like above with lein repl and initiate figwheel from there, not directly from the cmd, this is to preserve the nREPL port that we use from vscode to connect to the REPL..

To initiate a figwheel-repl you need the figwheel-sidecar dependency -> [figwheel-sidecar "0.5.8"] as well correct cljs classpaths read more about this here

If you have created a figwheel-project from a template (using e.g. lein new), you should be good to go as long as you start the repl in the projects folder.

So instead of running lein figwheel dev you will need to run lein repl and then start the figwheel REPL using (start-figwheel!)

I like to keep a start.clj file in my projects for this, and use (load-file "start.clj") to start: sample start.clj

 (use 'figwheel-sidecar.repl-api)
 (start-figwheel!)
 (cljs-repl)

But you can also do it manually in the nREPL:
NOTE: You need to connect to the browser to activate figwheels the cljs-repl session.
Figwheel REPL

Connect to the active REPL from vscode

Now that we have a working clj/cljs REPL running, we can connect from vscode using the extension!
Make sure that the REPL is up and running (it has a user-namespace prompt user=>)
To connect either use the shortcut: Alt + C (default), or the command VisualClojure: Connect to an existing nREPL session
When the input-field is displayed enter the correct REPL port and you should see a notification in the lower-left indicating the sessions found.

Connect from VSCode

There are 3 different states that the extensions connection can be in:
clj connection
cljs connection
no connection

That's it!, you are now connected and can start writing clojure :)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].