{"id":15127094,"url":"https://github.com/olical/conjure","last_synced_at":"2026-04-09T23:58:52.245Z","repository":{"id":39669884,"uuid":"150960683","full_name":"Olical/conjure","owner":"Olical","description":"Interactive evaluation for Neovim (Clojure, Fennel, Scheme, Python, JavaScript, PHP, R, Lua, Rust and more!)","archived":false,"fork":false,"pushed_at":"2026-02-13T11:32:25.000Z","size":7145,"stargazers_count":2061,"open_issues_count":94,"forks_count":140,"subscribers_count":20,"default_branch":"main","last_synced_at":"2026-03-05T07:37:25.452Z","etag":null,"topics":["cider","clojure","clojure-repl","clojurescript","deoplete-source","guile","hy-lang","janet-lang","javascript","mit-scheme","neovim","nrepl","racket","racket-lang","unlicense"],"latest_commit_sha":null,"homepage":"https://conjure.oli.me.uk","language":"Fennel","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Olical.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":null,"code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"Olical","ko_fi":"olical"}},"created_at":"2018-09-30T11:17:33.000Z","updated_at":"2026-03-04T20:50:00.000Z","dependencies_parsed_at":"2024-03-11T23:33:04.260Z","dependency_job_id":"bf7d6636-05be-4a4e-8137-87ca6b503660","html_url":"https://github.com/Olical/conjure","commit_stats":null,"previous_names":[],"tags_count":131,"template":false,"template_full_name":null,"purl":"pkg:github/Olical/conjure","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Olical%2Fconjure","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Olical%2Fconjure/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Olical%2Fconjure/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Olical%2Fconjure/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Olical","download_url":"https://codeload.github.com/Olical/conjure/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Olical%2Fconjure/sbom","scorecard":{"id":104461,"data":{"date":"2025-08-11","repo":{"name":"github.com/Olical/conjure","commit":"0649a6866017e61457d8f5093827fd48db8a08f1"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/benchmark.yaml:1","Warn: no topLevel permission defined: .github/workflows/luarocks.yml:1","Warn: no topLevel permission defined: .github/workflows/test.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":3,"reason":"Found 5/15 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: UNLICENSE:0","Info: FSF or OSI recognized license: The Unlicense: UNLICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/benchmark.yaml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/Olical/conjure/benchmark.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/benchmark.yaml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/Olical/conjure/benchmark.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/luarocks.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/Olical/conjure/luarocks.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/luarocks.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/Olical/conjure/luarocks.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yaml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/Olical/conjure/test.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yaml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/Olical/conjure/test.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yaml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/Olical/conjure/test.yaml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating ubuntu:21.10 to ubuntu:21.10@sha256:ff46b78279f207db3b8e57e20dee7cecef3567d09489369d80591f150f9c8154","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Vulnerabilities","score":0,"reason":"12 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-x9w5-v3q2-3rhw","Warn: Project is vulnerable to: GHSA-vh7m-p724-62c2","Warn: Project is vulnerable to: GHSA-r9p9-mrjm-926w","Warn: Project is vulnerable to: GHSA-434g-2637-qmqr","Warn: Project is vulnerable to: GHSA-49q7-c7j4-3p7m","Warn: Project is vulnerable to: GHSA-977x-g7h5-7qgw","Warn: Project is vulnerable to: GHSA-f7q4-pwc6-w24p","Warn: Project is vulnerable to: GHSA-fc9h-whq2-v747","Warn: Project is vulnerable to: GHSA-vjh7-7g9h-fjfh","Warn: Project is vulnerable to: GHSA-h7cp-r72f-jxh6","Warn: Project is vulnerable to: GHSA-v62p-rq8g-8h59","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 20 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-15T10:50:19.486Z","repository_id":39669884,"created_at":"2025-08-15T10:50:19.486Z","updated_at":"2025-08-15T10:50:19.486Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30467783,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T11:00:43.441Z","status":"ssl_error","status_checked_at":"2026-03-13T11:00:23.173Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cider","clojure","clojure-repl","clojurescript","deoplete-source","guile","hy-lang","janet-lang","javascript","mit-scheme","neovim","nrepl","racket","racket-lang","unlicense"],"created_at":"2024-09-26T02:03:01.126Z","updated_at":"2026-03-13T13:03:38.309Z","avatar_url":"https://github.com/Olical.png","language":"Fennel","readme":"++++\n\u003cp align=\"center\"\u003e\u003ca href=\"https://www.etsy.com/uk/shop/MysticalScribbles?ref=profile_header\"\u003e\u003cimg src=\"https://conjure.oli.me.uk/images/lillian.png\"/\u003e\u003c/a\u003e\u003c/p\u003e\n++++\n\n== https://oli.me.uk/Blog+archive/2020/Conversational+software+development[Conversational software development] for https://neovim.io[Neovim] +\n\nhttps://discord.gg/wXAMr8F[image:https://img.shields.io/discord/732957595249410108.svg?label=\u0026logo=discord\u0026logoColor=ffffff\u0026color=7389D8\u0026labelColor=6A7EC2[Discord]]\n\nConjure is an interactive environment for evaluating code within your running program.\n\nThe core features of Conjure are language agnostic (although it's targeted at Lisps _for now_), with each language client providing their own extra tools. Here's the currently supported languages, contributions and 3rd party plugins that add clients are highly encouraged! You can find a https://github.com/Olical/conjure/wiki/Client-features[comparison table for all clients and supported features] in the wiki.\n\n * https://clojure.org/[Clojure] over https://nrepl.org/[nREPL] (https://github.com/Olical/conjure/wiki/Quick-start:-Clojure[quickstart])\n ** https://github.com/borkdude/babashka[Babashka] (https://github.com/Olical/conjure/wiki/Quick-start:-Clojure-(babashka)[quickstart])\n ** https://github.com/basilisp-lang/basilisp[Basilisp] (https://github.com/Olical/conjure/wiki/Quick-start:-Clojure-(basilisp)[quickstart])\n * https://fennel-lang.org/[Fennel] inside Neovim via Lua and https://github.com/Olical/nfnl[nfnl] (https://github.com/Olical/conjure/wiki/Quick-start:-Fennel-(nfnl)[quickstart])\n * https://fennel-lang.org[Fennel] outside of Neovim within any Lua process through an stdio REPL (https://github.com/Olical/conjure/wiki/Quick-start:-Fennel-(stdio)[quickstart])\n * https://janet-lang.org/[Janet] over https://github.com/janet-lang/spork/#networked-repl[spork/netrepl] (https://github.com/Olical/conjure/wiki/Quick-start:-Janet-(netrepl)[quickstart])\n * https://janet-lang.org/[Janet] over stdio (https://github.com/Olical/conjure/wiki/Quick-start:-Janet-(stdio)[quickstart])\n * https://racket-lang.org/[Racket] over stdio (https://github.com/Olical/conjure/wiki/Quick-start:-Racket-(stdio)[quickstart])\n * https://docs.hylang.org[Hy] over stdio (https://github.com/Olical/conjure/wiki/Quick-start:-Hy-(stdio)[quickstart])\n * https://www.gnu.org/software/mit-scheme/[Scheme] (MIT by default) over stdio (https://github.com/Olical/conjure/wiki/Quick-start:-Scheme-(stdio)[quickstart])\n * https://www.gnu.org/software/guile/[Guile] over a socket file (https://github.com/Olical/conjure/wiki/Quick-start:-Guile-(socket)[quickstart])\n * https://lisp-lang.org/[Common Lisp] over https://www.cliki.net/SWANK[Swank] (https://github.com/Olical/conjure/wiki/Quick-start:-Common-Lisp-(Swank)[quickstart])\n * https://julialang.org/[Julia] over stdio (https://github.com/Olical/conjure/wiki/Quick-start:-Julia-(stdio)[quickstart])\n * https://www.rust-lang.org/[Rust] over stdio with https://github.com/google/evcxr[evcxr] (https://github.com/Olical/conjure/wiki/Quick-start:-Rust-(evcxr)[quickstart])\n * https://www.lua.org/[Lua] inside Neovim (https://github.com/Olical/conjure/wiki/Quick-start:-Lua-(neovim)[quickstart])\n * https://www.python.org/[Python] over stdio (https://github.com/Olical/conjure/wiki/Quick-start:-Python-(stdio)[quickstart])\n * https://php.net[PHP] over stdio with https://github.com/bobthecow/psysh[psysh] (https://github.com/bobthecow/psysh/wiki/Usage[usage])\n * https://www.r-project.org/[R] over stdio.\n * JavaScript (using https://nodejs.org/[Node.js]) over stdio\n * https://ccrma.stanford.edu/software/snd/[Snd] / https://ccrma.stanford.edu/software/snd/snd/s7.html[s7] (sound editor scriptable with Scheme) over stdio\n * https://en.wikipedia.org/wiki/SQL[SQL] (PostgreSQL psql by default) over stdio\n * https://www.ruby-lang.org/en/[Ruby] (using https://ruby.github.io/irb/[irb]) over stdio\n * https://elixir-lang.org/[Elixir] over stdio\n\nYou can learn more about the mappings and configuration inside Neovim with `:help conjure`. Each language client also has it's own specific help text under `:help conjure-client-{LANGUAGE}-{TRANSPORT}`, such as `:help conjure-client-clojure-nrepl`, which contains specific mappings and configuration for that client.\n\nYou can also get an interactive guide to the core principals and mappings by executing `:ConjureSchool` or by using the \"try before you install\" script as described further down this page.\n\n== User experience\n\nWhat does wielding Conjure actually look like? What can you do with it?\n\n * YouTube: https://youtu.be/ZSwbiZhvMdQ[How I use Conjure and Neovim to interact with Clojure (and more!)]\n * Asciinema (see below)\n\nhttps://asciinema.org/a/325517[image:https://asciinema.org/a/325517.svg[asciicast]]\n\n * Open a file of a supported file type such as `clojure` or `racket`.\n * Some languages, such as Clojure, will automatically connect to your REPL or give you the commands and mappings to do so yourself.\n * Use various mappings to execute the code you're interested in such as the current form, file, buffer or even form at a Neovim mark.\n * Every result is kept in a log buffer that you can access at any time.\n * Support for multiple asynchronous autocompletion frameworks, with https://github.com/Shougo/deoplete.nvim/[deoplete] built in (`\u003cC-x\u003e\u003cC-o\u003e` also works!).\n ** You can also use https://github.com/hrsh7th/nvim-cmp[nvim-cmp] with https://github.com/PaterJason/cmp-conjure[cmp-conjure]. (which I actually recommend!)\n\nConjure allows you to send the right part of your code off for evaluation, see the results, wrap the results in more code and evaluate that. It keeps a log of your actions and results so you don't have to remember them, that context is extremely helpful when you're down the rabbit hole of a bug hunt.\n\nEvaluating a form under your cursor is as simple as `\u003cprefix\u003eee`, where `\u003cprefix\u003e` defaults to `\u003clocalleader\u003e`. Be sure to set your your `\u003clocalleader\u003e` key or configure Conjure to use a different mapping prefix, see `:h maplocalleader` and `:h g:conjure#mapping#prefix` for more information.\n\nThe goal is to give you a tool that lets you effortlessly run whatever you need to while keeping out of your way (but there with context and more information if you need it).\n\nOnce installed you can run `:ConjureSchool` to begin an interactive tutorial.\n\n== Try without installing\n\nYou can trial run Conjure with the interactive `:ConjureSchool` tutorial without actually installing it! The only prerequisites are `curl` and an up to date `nvim`.\n\n[source,bash]\n----\ncurl -fL conjure.oli.me.uk/school | sh\n----\n\nThis will temporarily download the plugin, launch Neovim with `:ConjureSchool` running and then clean up after itself. You get to try out what Conjure has to offer without having to edit your Neovim configuration.\n\n== Installation\n\nRequires Neovim 0.10 or newer.\n\nAlternatively you can use https://github.com/Olical/magic-kit[Magic Kit], an opinionated starter kit that includes all sorts of essential tools.\n\n=== https://github.com/wbthomason/packer.nvim[packer.nvim]\n\n[source,lua]\n----\nuse 'Olical/conjure'\n----\n\n=== https://github.com/junegunn/vim-plug[vim-plug]\n\n[source,viml]\n----\nPlug 'Olical/conjure'\n----\n\n=== https://github.com/folke/lazy.nvim[lazy.nvim]\n\n[source,lua]\n----\nreturn { \"Olical/conjure\" }\n----\n\nTo take advantage of lazy loading, a bit more involved configuration is required:\n[%collapsible]\n====\n[source,lua]\n----\nreturn {\n  {\n    \"Olical/conjure\",\n    ft = { \"clojure\", \"fennel\", \"python\" }, -- etc\n    lazy = true,\n    init = function()\n      -- Set configuration options here\n      -- Uncomment this to get verbose logging to help diagnose internal Conjure issues\n      -- This is VERY helpful when reporting an issue with the project\n      -- vim.g[\"conjure#debug\"] = true\n    end,\n\n    -- Optional cmp-conjure integration\n    dependencies = { \"PaterJason/cmp-conjure\" },\n  },\n  {\n    \"PaterJason/cmp-conjure\",\n    lazy = true,\n    config = function()\n      local cmp = require(\"cmp\")\n      local config = cmp.get_config()\n      table.insert(config.sources, { name = \"conjure\" })\n      return cmp.setup(config)\n    end,\n  },\n}\n----\n====\n\n== Configuration\n\nAll configuration is performed through global Neovim variables, this may change to a `.setup(...)` Lua first approach some day but for now you can configure things by setting variables early, before Conjure loads. For example, if you wish to rebind or disable the default documentation lookup key (`K`) because you don't need it or it conflicts with your LSP configuration you can do so like this:\n\n```lua\n-- Disable the documentation mapping\nvim.g[\"conjure#mapping#doc_word\"] = false\n\n-- Rebind it from K to \u003cprefix\u003egk\nvim.g[\"conjure#mapping#doc_word\"] = \"gk\"\n\n-- Reset it to the default unprefixed K (note the special table wrapped syntax)\nvim.g[\"conjure#mapping#doc_word\"] = {\"K\"}\n```\n\n```viml\n# And the same disabling but in Vim Script\n# Note the v:false in Vim Script!\nlet g:conjure#mapping#doc_word = v:false\n```\n\nPlease see `:help conjure` for the full list of possible configuration variables and values.\n\n== Mods\n\nModifications or mods are extra plugins that improve Conjure in various ways. They may add completion plugin support, entire language clients or new mappings that do fun and interesting things. You can learn about creating your own by reading the source code of the projects listed below as well as https://github.com/Olical/conjure/wiki/Using-Conjure-programatically-(API)[\"Using Conjure programatically (API)\"] and https://github.com/Olical/conjure/wiki/Client-features[\"Client features\"].\n\n * https://github.com/jlesquembre/coc-conjure[jlesquembre/coc-conjure]: Conjure completion support for https://github.com/neoclide/coc.nvim[coc.nvim].\n * https://github.com/PaterJason/cmp-conjure[PaterJason/cmp-conjure]: https://github.com/hrsh7th/nvim-cmp[nvim-cmp] source for Conjure.\n * https://gitlab.com/invertisment/conjure-clj-additions-cider-nrepl-mw[Invertisment/conjure-clj-additions-nrepl]: Jump to failing Clojure test and more.\n * https://gitlab.com/invertisment/conjure-clj-additions-vanilla[Invertisment/conjure-clj-additions-vanilla]: Jump to failing Clojure test for Conjure when not using nREPL.\n\n== Tree sitter support\n\n____\nWarning! If you want to work with ANY language that isn't a Lisp dialect you will need to use tree sitter. If you do not use tree sitter only visual selection and vim motion based evaluations will work. You _need_ tree sitter if you wish to evaluate non Lisp languages with `\u003cprefix\u003eee` and other such form based evaluation mappings.\n____\n\nWhen you ask Conjure to evaluate the form under your cursor it has to understand the code enough to be able to find the boundaries and extract the right characters from the buffer. This used to be done using Neovim's built in `findpairpos`, syntax highlighting regexes and exhaustive searching of the buffer. This is error prone, gets slow as the buffer grows and doesn't work with non-Lisp languages which lack clear boundaries.\n\nI highly recommend you set up tree sitter inside your Neovim configuration and `:TSInstall [language]` every language you're interested in working with. You should then keep those tree sitter modules up to date as you upgrade Neovim since the API seems to change slightly over time.\n\nTree sitter allows you to work with non-Lisp languages like Julia as well as get far more accurate, smart and performant evaluations in languages like Clojure. You can learn more and get everything set up using the https://github.com/nvim-treesitter/nvim-treesitter[nvim-treesitter] repository.\n\nIt's technically optional since Conjure contains legacy fallback code, but I highly recommend tree sitter when using Conjure, it's how you get cool things like smart comment block evaluations in Clojure and form based evaluations in Julia and Lua.\n\n== Getting started\n\nThe majority of the documentation can be found within link:doc/conjure.txt[`:help conjure`]. You can also use `:ConjureSchool` to get an interactive introduction to the workflow and mappings Conjure provides. Refer to the list at the top of this file for links to the various quickstart guides for each language.\n\nPlease do get in touch via https://discord.gg/wXAMr8F[Discord] or https://twitter.com/OliverCaldwell[Twitter] if you have any questions or issues.\n\nBroader documentation can be found in the https://github.com/Olical/conjure/wiki[Conjure wiki], there you'll find blog posts and guides that will help you get common workflows up and running. Contributions are encouraged!\n\n== Behind the curtain\n\nConjure is written entirely in Lua (no VimL or external processes!) which is compiled from https://fennel-lang.org/[Fennel] by https://github.com/Olical/nfnl[nfnl] ahead of time. Check out link:CONTRIBUTING.md[`CONTRIBUTING.md`] for more on how to work on Conjure using itself.\n\nHistorically, Conjure was Clojure specific with an entirely different implementation, you can still find that version on the https://github.com/Olical/conjure/tree/legacy-jvm[legacy-jvm branch].\n\n== Unlicenced\n\nFind the full http://unlicense.org/[unlicense] in the `UNLICENSE` file, but here's a snippet.\n\n____\nThis is free and unencumbered software released into the public domain.\n\nAnyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.\n____\n","funding_links":["https://github.com/sponsors/Olical","https://ko-fi.com/olical"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folical%2Fconjure","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Folical%2Fconjure","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folical%2Fconjure/lists"}