9e15467
Branches > main > 9e15467 > files / nvim / pack / plugins / opt / parinfer-rust / tests / kakoune / insert / in
nvim
Commit: 9e15467e571dab825395d040642cc4464782c084
Parent: 8646c2c
72 changed files:
nvim/init.lua view file
@@ -5,6 +5,7 @@ require("center") require("opts")+require("filetype") local nvim_arg = vim.fn.argv(0) if vim.fn.isdirectory(nvim_arg) == 1 then@@ -15,8 +16,9 @@ vim.schedule(function() require("lsp") end) vim.schedule(function() require("lazy_ui") end) +--- TODO there's a bug tha parens and virtual text likes to stick around for longer than it should...+ --- Still to do:---- REPL (Conjure) --- Parens (Parinfer) --- Formatting (better formatting anyway :p) nvim/lua/colors.lua view file
@@ -126,6 +126,7 @@ -- ??? hl(0, "@lsp.type.event.clojure", {link = "White"}) hl(0, "@lsp.type.type.clojure", {link = "White"})+hl(0, "@lsp.type.class.clojure", {link = "Blue"}) hl(0, "@lsp.type.namespace.clojure", {link = "White"}) hl(0, "rubyStringDelimiter", {link = "String"})nvim/lua/filetype.lua view file
@@ -0,0 +1,6 @@+vim.api.nvim_create_autocmd("FileType", {+ pattern = "clojure",+ callback = function()+ require("plugins.conjure")+ end,+})nvim/lua/jump.lua view file
@@ -2,9 +2,9 @@ local ns = vim.api.nvim_create_namespace("dev.grahp.nvim-jump") --- Name meanings:---- Jump target: Somewhere you can jump to - Union of Match and table of optional Disambiguator+--- Jump target: Somewhere you can jump to - row, col (pos), char, and optional disambiguator --- Disambiguator: A third character used to differentiate jump targets when there are multiple---- Match: Union Pos and a table of Char+--- Match: row, col (pos) and char --- Row: The number of lines into the buffer line is? (0-based?) --- Col: The number of characters into the line? (1-based?) --- Pos: table of row, colnvim/lua/keybindings.lua view file
@@ -39,11 +39,11 @@ keymap("n", "<Space>u", function() require("plugins.oil").open() end) -keymap("n", "<Space>f", function() require("fuzzy").fuzzy_find() end)+keymap("n", "<Space>g", function() require("fuzzy").fuzzy_find() end) keymap({"n", "v", "o"}, ";", function() require("jump").jump() end) local smart_n = require("smart_n").smart_n -keymap({"n", "v", "o"}, "n", smart_n(false), {expr = true, noremap = true})-keymap({"n", "v", "o"}, "N", smart_n(true), {expr = true, noremap = true})+keymap({"n", "v", "o"}, "n", function() return smart_n(false) end, {expr = true, noremap = true})+keymap({"n", "v", "o"}, "N", function() return smart_n(true) end, {expr = true, noremap = true})nvim/lua/plugins/conjure.lua view file
@@ -0,0 +1,24 @@+local keymap = vim.keymap.set+local g = vim.g++vim.cmd("packadd conjure")++-- require("oil").setup({skip_confirm_for_simple_edits = true,+-- default_file_explorer = true,+-- watch_for_changes = true,+-- view_options = {show_hidden = true}})++-- require("conjure").setup()++keymap("n", "<Space>s", "<cmd>ConjureEvalCurrentForm<CR>")+keymap("n", "<Space>d", "<cmd>ConjureEvalRootForm<CR>")+keymap("n", "<Space>f", "<cmd>ConjureEvalBuf<CR>")+keymap("n", "<Space>l", "<cmd>ConjureEvalWord<CR>")+keymap("n", "<Space>e", "<cmd>ConjureCljLastException<CR>")+keymap("n", "<Space>b", "<cmd>ConjureLogBuf<CR>")++g["conjure#log#hud#height"] = 1+g["conjure#log#hud#border"] = {"╭", "─", "╮", "│", "╯", "─", "╰", "│"}+g["conjure#log#botright"] = true+--- Stop K from being re-defined+g["conjure#mapping#doc_word"] = falsenvim/lua/smart_n.lua view file
@@ -25,9 +25,7 @@ end local function smart_n(reverse, not_smart)- if vim.b.last_n_type == nil then- return ""- elseif vim.b.last_n_type == FT then+ if vim.b.last_n_type == FT then local cs = vim.fn.getcharsearch() if reverse then return (not_smart and ",") or cs.forward == 1 and "," or ";"@@ -52,8 +50,13 @@ -- vim.keymap.set({"n", "v", "o"}, "n", function() return smart_n(false) end, {expr = true, noremap = true}) -- vim.keymap.set({"n", "v", "o"}, "N", function() return smart_n(true) end, {expr = true, noremap = true}) ---- As this keeps track of what you're doing, this file should be required before you're actually moving around---- You can defer it from first paint though.+--- In another file+-- local smart_n = require("smart_n").smart_n -- Or wherever you put it+-- vim.keymap.set({"n", "v", "o"}, "n", function() return smart_n(false) end, {expr = true, noremap = true})+-- vim.keymap.set({"n", "v", "o"}, "N", function() return smart_n(true) end, {expr = true, noremap = true})++--- As this keeps track of the last type of search you performed, this file should be loaded before you're actually moving around.+--- You can defer it from first paint though, i.e. vim.schedule(function() require("smart_n") end) return {smart_n = smart_n, not_smart_n = not_smart_n}nvim/pack/plugins/opt/parinfer-rust/.envrc view file
@@ -0,0 +1 @@+use flakenvim/pack/plugins/opt/parinfer-rust/.gitignore view file
@@ -0,0 +1,7 @@+/bin/+/target/+/node_modules/+**/*.rs.bk+/result+/result-*+/.direnvnvim/pack/plugins/opt/parinfer-rust/.nvmrc view file
@@ -0,0 +1 @@+v8.10.0nvim/pack/plugins/opt/parinfer-rust/CHANGELOG.adoc view file
@@ -0,0 +1,165 @@+ChangeLog+=========++https://github.com/eraserhd/parinfer-rust/compare/v0.5.0...HEAD[Unreleased]+---------------------------------------------------------------------------++=== Fixed++* Kakoune: Instead of expecting the binary in the path, tries to detect the+ path, which can be overridden with the parinfer_path option. Looks in+ `~/.cargo/bin` first.++=== Added++* Added support for https://hylang.org/[Hy].+* Added support for https://picolisp.com/wiki/?home[PicoLisp].++https://github.com/eraserhd/parinfer-rust/compare/v0.4.3...HEAD[v0.5.0]+-----------------------------------------------------------------------++* Support for Apple Silicon (by bumping dependency versions)+* Update to Rust edition 2021++=== Vim++* Vim errors when opening an unmodifiable buffer.+* Fix of E523 regression (often triggered by using `.`), because Vim+ changed the error to E578+* Add support for https://github.com/ocaml/dune[Dune]++=== Added++* Added support for https://github.com/elkowar/eww[Yuck]+* String delimiters can now be explicitly configured with the + `string_delimiters` option.+* Added -l, --language LANG option to easily specify language defaults.+* The user can now set the character used to denote comments. The+ character can be set on a global or per-buffer basis (using+ `g:parinfer_comment_char` and `b:parinfer_comment_char` respectively).+ By default, the global character is `;` and the character for Janet+ buffers is `#`.+* Add support for Janet's multiple-backtick-enclosed long strings.+* Support for WebAssembly+* More support for Common Lisp and Scheme:+ - `|Enclosed symbols|`+ - `#|Block comments|#`+ - `#;(S-expression comments)`+* Support for Guile's `#!block comments!#`++=== Emacs++* Compilation for Emacs is now optional. To enable it, run+`cargo build --release --features emacs`+++https://github.com/eraserhd/parinfer-rust/compare/v0.4.2...v0.4.3[0.4.3]+------------------------------------------------------------------------++=== Fixed++* Sometimes dlerror() is null on second invocation, causing SEGV instead+ of an informative panic.+* Fix for rust+glibc 2.30 test failures: self-reference code no longer+ works in test because glibc 2.30 refuses to load position-independent+ code or no-library code, so it is disabled.++https://github.com/eraserhd/parinfer-rust/compare/v0.4.1...v0.4.2[0.4.2]+------------------------------------------------------------------------++=== Fixed++* Errors in build and release actions.+++https://github.com/eraserhd/parinfer-rust/compare/v0.4.0...v0.4.1[0.4.1]+------------------------------------------------------------------------++=== Fixed++* Test error "Could not get parinfer library path" (#57).++=== Vim++* Add support for loading with Vim/Neovim `packadd`+* Add support for https://fennel-lang.org[Fennel]+* Add support for https://janet-lang.org[Janet]++=== Kakoune++* Prevent Unicode characters from "locking up" the cursor. Closes #55.+ (This requires a version of Kakoune dated Nov 12, 2019 or later, with the+ `-display-column` option to `:select`.)++https://github.com/eraserhd/parinfer-rust/compare/v0.3.1...v0.4.0[0.4.0]+------------------------------------------------------------------------++=== Releases++* GitHub Actions test and release on Linux, Windows, and Macnvim/pack/plugins/opt/parinfer-rust/Cargo.lock view file
@@ -0,0 +1,476 @@+# This file is automatically @generated by Cargo.+# It is not intended for manual editing.+version = 4++[[package]]+name = "anyhow"+version = "1.0.95"+source = "registry+https://github.com/rust-lang/crates.io-index"+checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04"++[[package]]+name = "base-x"+version = "0.2.11"+source = "registry+https://github.com/rust-lang/crates.io-index"+checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270"++[[package]]+name = "bumpalo"+version = "3.16.0"+source = "registry+https://github.com/rust-lang/crates.io-index"+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"++[[package]]+name = "cfg-if"+version = "1.0.0"+source = "registry+https://github.com/rust-lang/crates.io-index"+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"++[[package]]+name = "ctor"+version = "0.1.26"+source = "registry+https://github.com/rust-lang/crates.io-index"+checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"+dependencies = [+ "quote",+ "syn 1.0.109",+]++[[package]]+name = "darling"+version = "0.10.2"+source = "registry+https://github.com/rust-lang/crates.io-index"+checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858"+dependencies = [+ "darling_core",+ "darling_macro",+]++[[package]]+name = "darling_core"+version = "0.10.2"+source = "registry+https://github.com/rust-lang/crates.io-index"+checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b"+dependencies = [+ "fnv",+ "ident_case",+ "proc-macro2",+ "quote",+ "strsim",+ "syn 1.0.109",+]++[[package]]+name = "darling_macro"+version = "0.10.2"+source = "registry+https://github.com/rust-lang/crates.io-index"+checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72"+dependencies = [+ "darling_core",+ "quote",+ "syn 1.0.109",+]++[[package]]+name = "discard"+version = "1.0.4"+source = "registry+https://github.com/rust-lang/crates.io-index"+checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0"++[[package]]+name = "emacs"+version = "0.19.0"+source = "registry+https://github.com/rust-lang/crates.io-index"+checksum = "9a773f2eeb842fea9f9e52f8360dbf7c0c54af0c904e025c9e08db5053b8718c"+dependencies = [+ "anyhow",+ "ctor",+ "emacs-macros",+ "emacs_module",+ "once_cell",+ "rustc_version",+ "thiserror",+]++[[package]]+name = "emacs-macros"+version = "0.17.0"+source = "registry+https://github.com/rust-lang/crates.io-index"+checksum = "69656fdfe7c2608b87164964db848b5c3795de7302e3130cce7131552c6be161"nvim/pack/plugins/opt/parinfer-rust/Cargo.toml view file
@@ -0,0 +1,29 @@+[package]+name = "parinfer_rust"+version = "0.5.0"+authors = ["Jason Felice <jason.m.felice@gmail.com>"]+edition = "2021"++[lib]+crate-type = ["lib", "cdylib"]++[[bin]]+name = "parinfer-rust"+path = "src/main.rs"++[dependencies]+getopts = "0.2"+libc = "0.2.39"+serde = "1.0"+emacs = {version = "0.19.0", optional = true}+serde_json = "1.0"+serde_derive = "1.0"+unicode-segmentation = "1.1.0"+unicode-width = "0.1.5"++[target.'cfg(target_arch = "wasm32")'.dependencies]+stdweb = "0.4.4"++[target.'cfg(windows)'.dependencies]+winapi = { version = "0.3.6", features = ["libloaderapi"] }+nvim/pack/plugins/opt/parinfer-rust/LICENSE.md view file
@@ -0,0 +1,15 @@+ISC License++Copyright (c) 2018, Jason Felice and Contributors++Permission to use, copy, modify, and/or distribute this software for any purpose+with or without fee is hereby granted, provided that the above copyright notice+and this permission notice appear in all copies.++THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF+THIS SOFTWARE.nvim/pack/plugins/opt/parinfer-rust/Makefile view file
@@ -0,0 +1,9 @@+.PHONY: install+install:+ cargo build --release+ cargo install --force+ mkdir -p ~/.config/kak/autoload/+ for file in "$$(pwd)"/rc/*.kak; do \+ ln -sf "$${file}" ~/.config/kak/autoload/; \+ done+nvim/pack/plugins/opt/parinfer-rust/README.adoc view file
@@ -0,0 +1,236 @@+= parinfer-rust++Infer parentheses for Clojure, Lisp and Scheme.++https://github.com/eraserhd/parinfer-rust++A full-featured, super fast implementation of https://shaunlebron.github.io/parinfer/[Shaun Lebron’s parinfer].+This repo has Vim, Neovim, and Kakoune plugins, and an https://github.com/justinbarclay/parinfer-rust-mode[Emacs plugin] is available.+The Rust library can be called from other editors that can load dynamic libraries.++This plugin, unlike others available for Vim, implements "smart" mode.+Rather than switching between "paren" mode and "indent" mode, parinfer uses information about how the user is changing the file to decide what to do.++== Installing++Dependencies:++* https://www.rust-lang.org/en-US/install.html[rust] >= ~1.83 ?+* `clang` and `libclang-dev` packages or equivalent for your OS+++=== Stand-alone CLI++If you just want to run `parinfer-rust` from the command-line:++....+$ cargo build --release+$ cargo install+....++If you use emacs add the corresponding feature flag during compilation+....+$ cargo build --release --features emacs+....++=== Vim and Neovim++==== `+pathogen+`++If you are using Tim Pope’s `+pathogen+`:++....+$ cd ~/.vim/bundle+$ git clone git@github.com:eraserhd/parinfer-rust.git+$ cd ~/.vim/bundle/parinfer-rust+$ cargo build --release+....++==== `+vim-plug+`++[source,viml]+----+Plug 'eraserhd/parinfer-rust'+----++Then, build project using cargo:++....+$ cd /path/to/parinfer-rust+$ cargo build --release+....++Or, with optional automatic recompilation on update:++[source,viml]+----+Plug 'eraserhd/parinfer-rust', {'do':+ \ 'cargo build --release'}+----++If you are a NixOS user using Plug, you can use this command instead:+[source,viml]+----+Plug 'eraserhd/parinfer-rust', {'do':+ \ 'nix-shell --run \"cargo build --release \"'}+----++==== `+lazy.nvim+`++Add this to your `+init.lua+`:++[source,viml]+----+require("lazy").setup({+ {"eraserhd/parinfer-rust", build = "cargo build --release"}+})+----++==== `+Nix+`++If you are a Nix user using Nix + Home Manager to build your vim plugins, you can add:++[source,nix]+----+programs.neovim = {+ [ pkgs.vimPlugins.parinfer-rust ];+}+----+nvim/pack/plugins/opt/parinfer-rust/Web.toml view file
@@ -0,0 +1,2 @@+default-target = "wasm32-unknown-unknown"+prepend-js = ["src/webcore/runtime.js", "src/webcore/runtime_wasm.js"]nvim/pack/plugins/opt/parinfer-rust/benches/perf.rs view file
@@ -0,0 +1,129 @@+#![feature(test)]++extern crate parinfer_rust;+extern crate test;++#[macro_use]+extern crate serde_json;++use std::ffi::CString;+use test::Bencher;++const LONG_MAP_WITH_STRINGS: &str = include_str!("perf/long_map_with_strings");+const REALLY_LONG_FILE: &str = include_str!("perf/really_long_file");+const REALLY_LONG_FILE_WITH_UNCLOSED_PAREN: &str =+ include_str!("perf/really_long_file_with_unclosed_paren");+const REALLY_LONG_FILE_WITH_UNCLOSED_QUOTE: &str =+ include_str!("perf/really_long_file_with_unclosed_quote");++fn build_case(mode: &str, text: &str) -> CString {+ CString::new(+ json!({+ "mode": mode,+ "text": text,+ "options": {+ "forceBalance": false,+ "partialResult": false,+ "returnParens": false+ }+ })+ .to_string(),+ )+ .unwrap()+}++#[bench]+fn bench_paren_long_map_with_strings(b: &mut Bencher) {+ unsafe {+ let options = build_case("paren", LONG_MAP_WITH_STRINGS);+ b.iter(|| parinfer_rust::run_parinfer(options.as_ptr()));+ }+}++#[bench]+fn bench_indent_long_map_with_strings(b: &mut Bencher) {+ unsafe {+ let options = build_case("indent", LONG_MAP_WITH_STRINGS);+ b.iter(|| parinfer_rust::run_parinfer(options.as_ptr()));+ }+}++#[bench]+fn bench_smart_long_map_with_strings(b: &mut Bencher) {+ unsafe {+ let options = build_case("smart", LONG_MAP_WITH_STRINGS);+ b.iter(|| parinfer_rust::run_parinfer(options.as_ptr()));+ }+}++#[bench]+fn bench_paren_really_long_file(b: &mut Bencher) {+ unsafe {+ let options = build_case("paren", REALLY_LONG_FILE);+ b.iter(|| parinfer_rust::run_parinfer(options.as_ptr()));+ }+}++#[bench]+fn bench_indent_really_long_file(b: &mut Bencher) {+ unsafe {+ let options = build_case("indent", REALLY_LONG_FILE);+ b.iter(|| parinfer_rust::run_parinfer(options.as_ptr()));+ }+}++#[bench]+fn bench_smart_really_long_file(b: &mut Bencher) {+ unsafe {+ let options = build_case("smart", REALLY_LONG_FILE);+ b.iter(|| parinfer_rust::run_parinfer(options.as_ptr()));+ }+}++#[bench]+fn bench_paren_really_long_file_with_unclosed_paren(b: &mut Bencher) {+ unsafe {+ let options = build_case("paren", REALLY_LONG_FILE_WITH_UNCLOSED_PAREN);+ b.iter(|| parinfer_rust::run_parinfer(options.as_ptr()));+ }+}++#[bench]+fn bench_indent_really_long_file_with_unclosed_paren(b: &mut Bencher) {+ unsafe {+ let options = build_case("indent", REALLY_LONG_FILE_WITH_UNCLOSED_PAREN);+ b.iter(|| parinfer_rust::run_parinfer(options.as_ptr()));+ }+}++#[bench]nvim/pack/plugins/opt/parinfer-rust/benches/perf/long_map_with_strings view file
@@ -0,0 +1,302 @@+[{:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"+ :key2 "bar"}+ {:key1 "foo"nvim/pack/plugins/opt/parinfer-rust/benches/perf/really_long_file view file
@@ -0,0 +1,2864 @@+;; Parinfer NOTE: this is just a large file taken from ClojureScript+;; which we use to test the speed of Parinfer.++; Copyright (c) Rich Hickey. All rights reserved.+; The use and distribution terms for this software are covered by the+; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)+; which can be found in the file epl-v10.html at the root of this distribution.+; By using this software in any fashion, you are agreeing to be bound by+; the terms of this license.+; You must not remove this notice, or any other, from this software.++(ns cljs.analyzer+ #?(:clj (:refer-clojure :exclude [macroexpand-1 ensure])+ :cljs (:refer-clojure :exclude [macroexpand-1 ns-interns ensure js-reserved]))+ #?(:cljs (:require-macros+ [cljs.analyzer.macros+ :refer [no-warn wrapping-errors+ disallowing-recur allowing-redef]]+ [cljs.env.macros :refer [ensure]]))+ #?(:clj (:require [cljs.util :as util :refer [ns->relpath topo-sort]]+ [clojure.java.io :as io]+ [clojure.string :as string]+ [clojure.set :as set]+ [cljs.env :as env :refer [ensure]]+ [cljs.js-deps :as deps]+ [cljs.tagged-literals :as tags]+ [clojure.tools.reader :as reader]+ [clojure.tools.reader.reader-types :as readers]+ [clojure.edn :as edn])+ :cljs (:require [goog.string :as gstring]+ [clojure.string :as string]+ [clojure.set :as set]+ [cljs.env :as env]+ [cljs.tagged-literals :as tags]+ [cljs.tools.reader :as reader]+ [cljs.tools.reader.reader-types :as readers]+ [cljs.reader :as edn]))+ #?(:clj (:import [java.io File Reader PushbackReader]+ [java.net URL]+ [clojure.lang Namespace Var LazySeq]+ [cljs.tagged_literals JSValue])))++#?(:clj (set! *warn-on-reflection* true))++(def ^:dynamic *cljs-ns* 'cljs.user)+(def ^:dynamic *cljs-file* nil)+#?(:clj (def ^:dynamic *unchecked-if* (atom false)))+(def ^:dynamic *cljs-static-fns* false)+(def ^:dynamic *cljs-macros-path* "/cljs/core")+(def ^:dynamic *cljs-macros-is-classpath* true)+(def ^:dynamic *cljs-dep-set* (with-meta #{} {:dep-path []}))+(def ^:dynamic *analyze-deps* true)+(def ^:dynamic *load-tests* true)+(def ^:dynamic *load-macros* true)+(def ^:dynamic *reload-macros* false)+(def ^:dynamic *macro-infer* true)++(def ^:dynamic *file-defs* nil)++;; log compiler activities+(def ^:dynamic *verbose* false)++(def -cljs-macros-loaded (atom false))++(def ^:dynamic *cljs-warnings*+ {:preamble-missing true+ :unprovided true+ :undeclared-var true+ :undeclared-ns true+ :undeclared-ns-form true+ :redef true+ :redef-in-file true+ :dynamic true+ :fn-var true+ :fn-arity true+ :fn-deprecated true+ :protocol-deprecated true+ :undeclared-protocol-symbol true+ :invalid-protocol-symbol true+ :multiple-variadic-overloads true+ :variadic-max-arity true+ :overload-arity true+ :extending-base-js-type true+ :invoke-ctor true+ :invalid-arithmetic true+ :protocol-invalid-method true+ :protocol-duped-method true+ :protocol-multiple-impls true+ :protocol-with-variadic-method true+ :single-segment-namespace true+ :munged-namespace true+ :ns-var-clash true+ :extend-type-invalid-method-shape true+ :unsupported-js-module-type true+ :unsupported-preprocess-value true})++(def js-reserved+ #{"arguments" "abstract" "boolean" "break" "byte" "case"+ "catch" "char" "class" "const" "continue"nvim/pack/plugins/opt/parinfer-rust/benches/perf/really_long_file_with_unclosed_paren view file
@@ -0,0 +1,2864 @@+;; Parinfer NOTE: this is just a large file taken from ClojureScript+;; which we use to test the speed of Parinfer.++; Copyright (c) Rich Hickey. All rights reserved.+; The use and distribution terms for this software are covered by the+; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)+; which can be found in the file epl-v10.html at the root of this distribution.+; By using this software in any fashion, you are agreeing to be bound by+; the terms of this license.+; You must not remove this notice, or any other, from this software.++(ns cljs.analyzer+ #?(:clj (:refer-clojure :exclude [macroexpand-1 ensure])+ :cljs (:refer-clojure :exclude [macroexpand-1 ns-interns ensure js-reserved]))+ #?(:cljs (:require-macros+ [cljs.analyzer.macros+ :refer [no-warn wrapping-errors+ disallowing-recur allowing-redef]]+ [cljs.env.macros :refer [ensure]]))+ #?(:clj (:require [cljs.util :as util :refer [ns->relpath topo-sort]]+ [clojure.java.io :as io]+ [clojure.string :as string]+ [clojure.set :as set]+ [cljs.env :as env :refer [ensure]]+ [cljs.js-deps :as deps]+ [cljs.tagged-literals :as tags]+ [clojure.tools.reader :as reader]+ [clojure.tools.reader.reader-types :as readers]+ [clojure.edn :as edn])+ :cljs (:require [goog.string :as gstring]+ [clojure.string :as string]+ [clojure.set :as set]+ [cljs.env :as env]+ [cljs.tagged-literals :as tags]+ [cljs.tools.reader :as reader]+ [cljs.tools.reader.reader-types :as readers]+ [cljs.reader :as edn]))+ #?(:clj (:import [java.io File Reader PushbackReader]+ [java.net URL]+ [clojure.lang Namespace Var LazySeq]+ [cljs.tagged_literals JSValue])))++#?(:clj (set! *warn-on-reflection* true))++(def ^:dynamic *cljs-ns* 'cljs.user)+(def ^:dynamic *cljs-file* nil)+#?(:clj (def ^:dynamic *unchecked-if* (atom false)))+(def ^:dynamic *cljs-static-fns* false)+(def ^:dynamic *cljs-macros-path* "/cljs/core")+(def ^:dynamic *cljs-macros-is-classpath* true)+(def ^:dynamic *cljs-dep-set* (with-meta #{} {:dep-path []}))+(def ^:dynamic *analyze-deps* true)+(def ^:dynamic *load-tests* true)+(def ^:dynamic *load-macros* true)+(def ^:dynamic *reload-macros* false)+(def ^:dynamic *macro-infer* true)++(def ^:dynamic *file-defs* nil)++;; log compiler activities+(def ^:dynamic *verbose* false)++(def -cljs-macros-loaded (atom false))++(def ^:dynamic *cljs-warnings*+ {:preamble-missing true+ :unprovided true+ :undeclared-var true+ :undeclared-ns true+ :undeclared-ns-form true+ :redef true+ :redef-in-file true+ :dynamic true+ :fn-var true+ :fn-arity true+ :fn-deprecated true+ :protocol-deprecated true+ :undeclared-protocol-symbol true+ :invalid-protocol-symbol true+ :multiple-variadic-overloads true+ :variadic-max-arity true+ :overload-arity true+ :extending-base-js-type true+ :invoke-ctor true+ :invalid-arithmetic true+ :protocol-invalid-method true+ :protocol-duped-method true+ :protocol-multiple-impls true+ :protocol-with-variadic-method true+ :single-segment-namespace true+ :munged-namespace true+ :ns-var-clash true+ :extend-type-invalid-method-shape true+ :unsupported-js-module-type true+ :unsupported-preprocess-value true})++(def js-reserved+ #{"arguments" "abstract" "boolean" "break" "byte" "case"+ "catch" "char" "class" "const" "continue"nvim/pack/plugins/opt/parinfer-rust/benches/perf/really_long_file_with_unclosed_quote view file
@@ -0,0 +1,2864 @@+;; Parinfer NOTE: this is just a large file taken from ClojureScript+;; which we use to test the speed of Parinfer.++; Copyright (c) Rich Hickey. All rights reserved.+; The use and distribution terms for this software are covered by the+; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)+; which can be found in the file epl-v10.html at the root of this distribution.+; By using this software in any fashion, you are agreeing to be bound by+; the terms of this license.+; You must not remove this notice, or any other, from this software.++(ns cljs.analyzer+ #?(:clj (:refer-clojure :exclude [macroexpand-1 ensure])+ :cljs (:refer-clojure :exclude [macroexpand-1 ns-interns ensure js-reserved]))+ #?(:cljs (:require-macros+ [cljs.analyzer.macros+ :refer [no-warn wrapping-errors+ disallowing-recur allowing-redef]]+ [cljs.env.macros :refer [ensure]]))+ #?(:clj (:require [cljs.util :as util :refer [ns->relpath topo-sort]]+ [clojure.java.io :as io]+ [clojure.string :as string]+ [clojure.set :as set]+ [cljs.env :as env :refer [ensure]]+ [cljs.js-deps :as deps]+ [cljs.tagged-literals :as tags]+ [clojure.tools.reader :as reader]+ [clojure.tools.reader.reader-types :as readers]+ [clojure.edn :as edn])+ :cljs (:require [goog.string :as gstring]+ [clojure.string :as string]+ [clojure.set :as set]+ [cljs.env :as env]+ [cljs.tagged-literals :as tags]+ [cljs.tools.reader :as reader]+ [cljs.tools.reader.reader-types :as readers]+ [cljs.reader :as edn]))+ #?(:clj (:import [java.io File Reader PushbackReader]+ [java.net URL]+ [clojure.lang Namespace Var LazySeq]+ [cljs.tagged_literals JSValue])))++#?(:clj (set! *warn-on-reflection* true))++(def ^:dynamic *cljs-ns* 'cljs.user)+(def ^:dynamic *cljs-file* nil)+#?(:clj (def ^:dynamic *unchecked-if* (atom false)))+(def ^:dynamic *cljs-static-fns* false)+(def ^:dynamic *cljs-macros-path* "/cljs/core")+(def ^:dynamic *cljs-macros-is-classpath* true)+(def ^:dynamic *cljs-dep-set* (with-meta #{} {:dep-path []}))+(def ^:dynamic *analyze-deps* true)+(def ^:dynamic *load-tests* true)+(def ^:dynamic *load-macros* true)+(def ^:dynamic *reload-macros* false)+(def ^:dynamic *macro-infer* true)++(def ^:dynamic *file-defs* nil)++;; log compiler activities+(def ^:dynamic *verbose* false)++(def -cljs-macros-loaded (atom false))++(def ^:dynamic *cljs-warnings*+ {:preamble-missing true+ :unprovided true+ :undeclared-var true+ :undeclared-ns true+ :undeclared-ns-form true+ :redef true+ :redef-in-file true+ :dynamic true+ :fn-var true+ :fn-arity true+ :fn-deprecated true+ :protocol-deprecated true+ :undeclared-protocol-symbol true+ :invalid-protocol-symbol true+ :multiple-variadic-overloads true+ :variadic-max-arity true+ :overload-arity true+ :extending-base-js-type true+ :invoke-ctor true+ :invalid-arithmetic true+ :protocol-invalid-method true+ :protocol-duped-method true+ :protocol-multiple-impls true+ :protocol-with-variadic-method true+ :single-segment-namespace true+ :munged-namespace true+ :ns-var-clash true+ :extend-type-invalid-method-shape true+ :unsupported-js-module-type true+ :unsupported-preprocess-value true})++(def js-reserved+ #{"arguments" "abstract" "boolean" "break" "byte" "case"+ "catch" "char" "class" "const" "continue"nvim/pack/plugins/opt/parinfer-rust/derivation.nix view file
@@ -0,0 +1,38 @@+{ lib, stdenv, libiconv, rustPlatform, fetchFromGitHub, llvmPackages }:++rustPlatform.buildRustPackage rec {+ name = "parinfer-rust-${version}";+ version = "0.5.0";++ src = ./.;+ cargoLock = {+ lockFile = ./Cargo.lock;+ };++ nativeBuildInputs = [+ llvmPackages.libclang+ llvmPackages.clang+ libiconv+ rustPlatform.bindgenHook+ ];+ LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";++ postInstall = ''+ mkdir -p $out/share/kak/autoload/plugins+ sed "s,^str parinfer_path .*,str parinfer_path '${placeholder "out"}/bin/parinfer-rust'," \+ rc/parinfer.kak >$out/share/kak/autoload/plugins/parinfer.kak++ rtpPath=$out/share/vim-plugins/parinfer-rust+ mkdir -p $rtpPath/plugin+ sed "s,let s:libdir = .*,let s:libdir = '${placeholder "out"}/lib'," \+ plugin/parinfer.vim >$rtpPath/plugin/parinfer.vim+ '';++ meta = with lib; {+ description = "Infer parentheses for Clojure, Lisp, and Scheme.";+ homepage = "https://github.com/eraserhd/parinfer-rust";+ license = licenses.isc;+ maintainers = with maintainers; [ eraserhd ];+ platforms = platforms.all;+ };+}nvim/pack/plugins/opt/parinfer-rust/dist/parinfer_rust.js view file
nvim/pack/plugins/opt/parinfer-rust/dist/parinfer_rust.wasm view file
nvim/pack/plugins/opt/parinfer-rust/dist/wrapper.js view file
nvim/pack/plugins/opt/parinfer-rust/doc/parinfer.txt view file
nvim/pack/plugins/opt/parinfer-rust/extra-docs/MacOS-Code-Signing.adoc view file
nvim/pack/plugins/opt/parinfer-rust/flake.lock view file
nvim/pack/plugins/opt/parinfer-rust/flake.nix view file
nvim/pack/plugins/opt/parinfer-rust/package.json view file
nvim/pack/plugins/opt/parinfer-rust/plugin/parinfer.vim view file
nvim/pack/plugins/opt/parinfer-rust/rc/parinfer.kak view file
nvim/pack/plugins/opt/parinfer-rust/script/release view file
nvim/pack/plugins/opt/parinfer-rust/src/c_wrapper.rs view file
nvim/pack/plugins/opt/parinfer-rust/src/changes.rs view file
nvim/pack/plugins/opt/parinfer-rust/src/cli_options.rs view file
nvim/pack/plugins/opt/parinfer-rust/src/common_wrapper.rs view file
nvim/pack/plugins/opt/parinfer-rust/src/emacs_wrapper.rs view file
nvim/pack/plugins/opt/parinfer-rust/src/kakoune.rs view file
nvim/pack/plugins/opt/parinfer-rust/src/lib.rs view file
nvim/pack/plugins/opt/parinfer-rust/src/main.rs view file
nvim/pack/plugins/opt/parinfer-rust/src/parinfer.rs view file
nvim/pack/plugins/opt/parinfer-rust/src/types.rs view file
nvim/pack/plugins/opt/parinfer-rust/src/wasm_wrapper.rs view file
nvim/pack/plugins/opt/parinfer-rust/src/webcore/runtime.js view file
nvim/pack/plugins/opt/parinfer-rust/src/webcore/runtime_wasm.js view file
nvim/pack/plugins/opt/parinfer-rust/static/index.html view file
nvim/pack/plugins/opt/parinfer-rust/tests/cases.rs view file
nvim/pack/plugins/opt/parinfer-rust/tests/cases/indent-mode.json view file
nvim/pack/plugins/opt/parinfer-rust/tests/cases/paren-mode.json view file
nvim/pack/plugins/opt/parinfer-rust/tests/cases/smart-mode.json view file
nvim/pack/plugins/opt/parinfer-rust/tests/kakoune/insert/cmd view file
nvim/pack/plugins/opt/parinfer-rust/tests/kakoune/insert/in view file
nvim/pack/plugins/opt/parinfer-rust/tests/kakoune/insert/out view file
nvim/pack/plugins/opt/parinfer-rust/tests/kakoune/janet/cmd view file
nvim/pack/plugins/opt/parinfer-rust/tests/kakoune/janet/in view file
nvim/pack/plugins/opt/parinfer-rust/tests/kakoune/janet/out view file
nvim/pack/plugins/opt/parinfer-rust/tests/kakoune/open-bracket/cmd view file
nvim/pack/plugins/opt/parinfer-rust/tests/kakoune/open-bracket/in view file
nvim/pack/plugins/opt/parinfer-rust/tests/kakoune/open-bracket/out view file
nvim/pack/plugins/opt/parinfer-rust/tests/kakoune/open-bracket/selections view file
nvim/pack/plugins/opt/parinfer-rust/tests/kakoune/picolisp/cmd view file
nvim/pack/plugins/opt/parinfer-rust/tests/kakoune/picolisp/in view file
nvim/pack/plugins/opt/parinfer-rust/tests/kakoune/picolisp/out view file
nvim/pack/plugins/opt/parinfer-rust/tests/kakoune/run.sh view file
nvim/pack/plugins/opt/parinfer-rust/tests/kakoune/select-word/cmd view file
nvim/pack/plugins/opt/parinfer-rust/tests/kakoune/select-word/in view file
nvim/pack/plugins/opt/parinfer-rust/tests/kakoune/select-word/selections view file
nvim/pack/plugins/opt/parinfer-rust/tests/vim/run.vim view file
nvim/pack/plugins/opt/parinfer-rust/tests/vim/tests-cases.md view file
nvim/pack/plugins/opt/parinfer-rust/tests/vim/vimrc view file