GithubHelp home page GithubHelp logo

pauloday / calva Goto Github PK

View Code? Open in Web Editor NEW

This project forked from betterthantomorrow/calva

0.0 0.0 0.0 82.12 MB

Clojure & ClojureScript Interactive Programming for VS Code

Home Page: https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva

License: Other

TypeScript 56.75% HTML 0.35% JavaScript 0.55% Clojure 41.14% CSS 1.20% Shell 0.01% Dockerfile 0.01%

calva's Introduction

Calva: Clojure & ClojureScript with Visual Studio Code

Calva logo

Distilled from CIDER*.

Welcome to Calva, an integrated REPL powered environment for enjoyable and productive Clojure and ClojureScript in Visual Studio Code. It includes inline code evaluation, Paredit, a Clojure formatter, a test runner, Clojure syntax highlighting, and more. Most of the REPL power is harvested from the produce of The Orchard.

(*) Calva is short for Calvados, a liquid gifted to humanity from God.

Users Like it 😍

Crispin Bennett's review:

This is great, and makes VS Code a truly viable IDE/editor for clojure development. It has great REPL support (including inline evaluation), an extensive Paredit implementation, and excellent linting (care of the bundled clj-kondo). Calva is being improved on at an impressive clip by maintainers who appear solidly committed to its ongoing development. It's well-documented, and manages to be both approachable and capable. A no-brainer if you're already a VS Code user, and well worth a look if you're not.

There is Documentation

Head over to https://calva.io/ to learn more about how to use Calva. The most important stuff would be:

Why Calva?

From The Tao of Calva:

Calva's raison d´être is to provide Visual Studio Code users with an easy to use and productive environment for Clojure and ClojureScript development.

From the same page you can also learn that we want Calva to be a good choice for VS Code users asking:

How do I use my favorite code editor for Clojure development?

We also hope that Calva will contribute to making it easier to pick up Clojure as a new language.

Getting Started with Calva

Go to the documentation to find info on how to connect Calva to your project and start evaluating code and such. The documentation is built from the same repository as Calva. So if you know about workarounds or gotchas or anything that is good to know about when using Calva, please edit the appropriate page (or create a new page) by PR.

Features

  • Syntax highlighting, plus:
    • Rainbow parens
    • Rainbow indent guides
    • Highlight active indent guide
    • Highlights misplaced brackets
    • LISP friendly bracket matching
    • Ignore form (#_) dimming and (comment) form highlighting
  • Code formatting and autoindent according to https://github.com/bbatsov/clojure-style-guide
  • Structural Editing (via Paredit)
  • Linting
  • Intellisense
  • Go to / Peek at definition
  • View doc strings on hover
  • View function signatures on hover, including help with knowing which argument you are typing
  • Debugger
  • Support for Clojure tools/deps, Leiningen, shadow-cljs, lein-figwheel, and Figwheel Main, and Nashorn repls. (For Boot, only Connect scenarios work, there is no Jack-in yet.)
  • Your Custom Connect Sequences, including fully customized CLJS REPLs.
  • Switch the CLJS REPL connection between your different CLJS builds at will.
  • When editing cljc files, easily choose if REPL commands should go to the clj or cljs REPL by clicking the cljc/clj[s] indicator in the status bar.
  • And more

Demo: Evaluate top level forms inside (comment...)

Top level comment eval

The gif demos several more features, apart from the in-comment evaluation, like:

  • signature help while typing function calls
  • evaluation result display is a bit sticky (so you can examine several evaluations at once)
  • there is a richer display of results in the hover of the evaluated expression. (From where you can also copy the results to the clipboard)
  • some structural editing

Demo: Signature Help, while Typing

It is pretty educational using the signature help hover to see which argument you are typing when the argument list is using destructuring, or when an argument is threaded in first before the arguments you provide inside the form.

Signature Help

Demo: Syntax highlighting, rainbow parens and guides

Dimming ignored forms

Demo: Syntax highlighting, dimming ignored forms

Dimming ignored forms

Demo: Peek at definitions, etcetera

Features

Demo: switch between clj and cljs repl sessions for cljc files

CLJC repl switching

How to contribute

I'm glad you are reading this section! There are many ways and you are welcome to combine them at will. Be creative 😄:

  • Give us feedback.
    • Via #calva at the Clojurians Slack.
    • Via filing issues.
  • Fix issues. PRs welcome! Calva is built using a combination of TypeScript and ClojureScript. The ClojureScript part uses the shadow-cljs tool chain. See the How to Contribute page on the wiki for instructions on how to hack on Calva. TL;DR It is super easy to get started!
  • Fix typos. In the UI and in the docs. It might seem like a small enough thing to not bother about it, but really, typos get in the way of comprehension. Typos are bad, uhm?
  • Become a GitHub sponsor. Read on.

Calva Sponsors ❤️

A considerable amount of time, creativity, energy, worries, sweat, and tears (well, no tears, but anyway 😄), is being spent on Calva. Please consider sponsoring us to show us that extra level of appreciation. Here are the ways you can do it:

Yeah, it's the only way right now, hopefully the other team members are setting up sponsoring as well.

These people are helping to keep Calva maintained and improved by sponsoring with their hard earned money. It is fantastic. Thank you!

Calva Gold Sponsors

Companies that benefit from Calva's existence and see it as an important piece of the Clojure and ClojureScript ecosystem.

Liftoff

Gold sponsors are also displayed here: https://calva.io/#sponsors.

Calva Fans

Bozhidar Batsov Clay Hopperdietzel Matthew Lyon Brian Scaturro

Calva Friends

Martin Klepsch Pedro Girardi Byron Miller Terje JC Ullrich Schäfer Scott Archer Norman Eckstein David Brear Sergei Udris Janne Sauvala Filipe Silva glebovmaksim Chris Smothers Snorre Magnus Davøen Alid Lorenzo ikrima

The Calva Team

We are Clojure and Visual Studio Code fans who care about the ergonomics of using our favorite programming language with our editor of choice.

Current Maintainers

Alumni

Code Contributors

Calva is a quite young open source project, with surprisingly many code contributors. We take great care to keep it easy and fun to contribute. See the Calva Development Wiki for more on this.

Happy coding

We hope you will find good use for Calva. Please let us know what you think. PRs welcome, file an issue or chat us up in the #calva channel in the Clojurians Slack.

calva's People

Contributors

andresrgz avatar bpringe avatar cfehse avatar clows avatar dependabot[bot] avatar dijonkitchen avatar hjers avatar jaimesangcap avatar jmingtan avatar juholei avatar julienvincent avatar kstehn avatar martinbertolino avatar mrkam2 avatar mseddon avatar nbardiuk avatar paulbutcher avatar pedrorgirardi avatar pez avatar rogererens avatar sauvala avatar sivertsenstian avatar slipset avatar stefan-toubia avatar taylorwood avatar teves-castro avatar thheller avatar tonsky avatar trevor-brandt avatar zelark avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.