From 5ac385a0638216ae538923d2ff02eee6576ef117 Mon Sep 17 00:00:00 2001 From: ajet Date: Mon, 11 Aug 2025 09:39:14 -0900 Subject: [PATCH] add initial commands --- Makefile | 2 +- fnl/conjure-macroexpand/main.fnl | 93 ------------------- fnl/conjure-macroreplace/main.fnl | 86 +++++++++++++++++ .../aniseed/autoload.lua | 2 +- .../aniseed/compile.lua | 8 +- .../aniseed/core.lua | 6 +- .../aniseed/deps/fennel.lua | 62 ++++++------- .../aniseed/deps/fun.lua | 0 .../aniseed/deps/nvim.lua | 0 .../aniseed/env.lua | 6 +- .../aniseed/eval.lua | 6 +- .../aniseed/fennel.lua | 8 +- .../aniseed/fs.lua | 6 +- .../aniseed/macros.fnl | 2 +- .../aniseed/macros/autocmds.fnl | 0 .../aniseed/nvim.lua | 4 +- .../aniseed/nvim/util.lua | 6 +- .../aniseed/setup.lua | 6 +- .../aniseed/string.lua | 6 +- .../aniseed/test.lua | 6 +- .../aniseed/view.lua | 4 +- .../main.lua | 81 ++++++++-------- plugin/conjure-macroexpand.vim | 3 - plugin/conjure-macroreplace.vim | 3 + .../main-test.fnl | 2 +- 25 files changed, 197 insertions(+), 211 deletions(-) delete mode 100644 fnl/conjure-macroexpand/main.fnl create mode 100644 fnl/conjure-macroreplace/main.fnl rename lua/{conjure-macroexpand => conjure-macroreplace}/aniseed/autoload.lua (93%) rename lua/{conjure-macroexpand => conjure-macroreplace}/aniseed/compile.lua (86%) rename lua/{conjure-macroexpand => conjure-macroreplace}/aniseed/core.lua (97%) rename lua/{conjure-macroexpand => conjure-macroreplace}/aniseed/deps/fennel.lua (98%) rename lua/{conjure-macroexpand => conjure-macroreplace}/aniseed/deps/fun.lua (100%) rename lua/{conjure-macroexpand => conjure-macroreplace}/aniseed/deps/nvim.lua (100%) rename lua/{conjure-macroexpand => conjure-macroreplace}/aniseed/env.lua (83%) rename lua/{conjure-macroexpand => conjure-macroreplace}/aniseed/eval.lua (83%) rename lua/{conjure-macroexpand => conjure-macroreplace}/aniseed/fennel.lua (77%) rename lua/{conjure-macroexpand => conjure-macroreplace}/aniseed/fs.lua (86%) rename lua/{conjure-macroexpand => conjure-macroreplace}/aniseed/macros.fnl (99%) rename lua/{conjure-macroexpand => conjure-macroreplace}/aniseed/macros/autocmds.fnl (100%) rename lua/{conjure-macroexpand => conjure-macroreplace}/aniseed/nvim.lua (62%) rename lua/{conjure-macroexpand => conjure-macroreplace}/aniseed/nvim/util.lua (88%) rename lua/{conjure-macroexpand => conjure-macroreplace}/aniseed/setup.lua (81%) rename lua/{conjure-macroexpand => conjure-macroreplace}/aniseed/string.lua (90%) rename lua/{conjure-macroexpand => conjure-macroreplace}/aniseed/test.lua (93%) rename lua/{conjure-macroexpand => conjure-macroreplace}/aniseed/view.lua (78%) rename lua/{conjure-macroexpand => conjure-macroreplace}/main.lua (50%) delete mode 100644 plugin/conjure-macroexpand.vim create mode 100644 plugin/conjure-macroreplace.vim rename test/fnl/{conjure-macroexpand => conjure-macroreplace}/main-test.fnl (62%) diff --git a/Makefile b/Makefile index 636de08..8c03964 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ compile: deps/aniseed/scripts/compile.sh # Remove this if you only want Aniseed at compile time. - deps/aniseed/scripts/embed.sh aniseed conjure-macroexpand + deps/aniseed/scripts/embed.sh aniseed conjure-macroreplace test: rm -rf test/lua diff --git a/fnl/conjure-macroexpand/main.fnl b/fnl/conjure-macroexpand/main.fnl deleted file mode 100644 index 0bebe06..0000000 --- a/fnl/conjure-macroexpand/main.fnl +++ /dev/null @@ -1,93 +0,0 @@ -(module conjure-macroexpand.main - {require {a aniseed.core - nvim aniseed.nvim - str aniseed.string - bridge conjure.bridge - client conjure.client - eval conjure.eval - extract conjure.extract - log conjure.log - mapping conjure.mapping}}) - -;; Adapted from conjure.eval/current-form -(defn- current-form [] - (let [form (extract.form {})] - (when form - (let [{: content} form] - content)))) - -(defn- clj-client [f args] - (client.with-filetype "clojure" f args)) - -(defn- output-expanded [orig] - (fn [r] - (log.append (a.concat [(.. "; " orig)] (str.split r "\n")) {:break? true}))) - -(defn clj-macroexpand [expand-cmd] - (let [form (current-form) - me-form (.. "(" (or expand-cmd "clojure.walk/macroexpand-all") " '" form ")")] - (clj-client eval.eval-str - {:origin :conjure-macroexpand - :code me-form - :passive? true - :on-result (output-expanded me-form)}))) - -(defn wrap-emit [name f] - (fn [...] - (event.emit name) - (f ...))) - -(local dir-str (wrap-emit - :doc - (client-exec-fn :doc :doc-str))) - -(defn dir-word [] - (let [{: content : range : node} (extract.word)] - (when (not (core.empty? content)) - (dir-str - {:code content - :range range - :node node - :origin :word})))) - -(defn replace-form [] - (let [buf (vim.api.nvim_win_get_buf 0) - win (vim.api.nvim_tabpage_get_win 0) - form (extract.form {})] - (when form - (let [{: content : range : node} form] - (eval-str - {:code content - :range range - :node node - :origin :replace-form - :suppress-hud? true - :on-result - (fn [result] - (buffer.replacerange - buf - range result) - (editor.go-to - win - (core.get-in range [:start 1]) - (core.inc (core.get-in range [:start 2]))))}) - (.. "(clojure.core/macroexpand1 " form ")"))))) - -(defn add-buf-mappings [] - (mapping.buf :CljMacroexpand "cm" #(clj-macroexpand) - {:desc "Call macroexpand-all on the symbol under the cursor"}) - (mapping.buf :CljMacroexpand0 "c0" #(clj-macroexpand "clojure.core/macroexpand") - {:desc "Call macroexpand on the symbol under the cursor"}) - (mapping.buf :CljMacroexpand1 "c1" #(clj-macroexpand "clojure.core/macroexpand-1") - {:desc "Call macroexpand-1 on the symbol under the cursor"}) - (mapping.buf :CljMacroexpandReplace "em!" #(replace-form) - {:desc "Call macroexpand-1 on the symbol under the cursor then replace that src with the expansion"}) - (mapping.buf :CljDirWord "em!" #(dir-word) - {:desc "Calls (clojure.repl/dir ,,,) for the namespace under the cursor"})) - -(defn init [] - (when (or (not nvim.g.conjure_macroexpand_disable_mappings) - (= 0 nvim.g.conjure_macroexpand_disable_mappings)) - (nvim.ex.autocmd - :FileType "clojure" - (bridge.viml->lua :conjure-macroexpand.main :add-buf-mappings)))) diff --git a/fnl/conjure-macroreplace/main.fnl b/fnl/conjure-macroreplace/main.fnl new file mode 100644 index 0000000..2306b05 --- /dev/null +++ b/fnl/conjure-macroreplace/main.fnl @@ -0,0 +1,86 @@ +(module conjure-macroreplace.main + {require {a aniseed.core + nvim aniseed.nvim + str aniseed.string + bridge conjure.bridge + client conjure.client + eval conjure.eval + extract conjure.extract + log conjure.log + mapping conjure.mapping + buffer conjure.buffer + editor conjure.editor}}) + +;; Adapted from conjure.eval/current-form +(defn- current-form [] + (let [form (extract.form {})] + (when form + (let [{: content} form] + content)))) + +(defn- clj-client [f args] + (client.with-filetype "clojure" f args)) + +(defn- output-expanded [orig] + (fn [r] + (log.append (a.concat [(.. "; " orig)] (str.split r "\n")) {:break? true}))) + +(defn clj-macroexpand [expand-cmd] + (let [form (current-form) + me-form (.. "(" (or expand-cmd "clojure.walk/macroexpand-all") " '" form ")")] + (clj-client eval.eval-str + {:origin :conjure-macroexpand + :code me-form + :passive? true + :on-result (output-expanded me-form)}))) + +(defn- dir-word [] + (let [{: content : range : node} (extract.word)] + (when (not (a.empty? content)) + (let [dir-code (.. "(clojure.repl/dir " content ")")] + (clj-client eval.eval-str + {:code dir-code + :range range + :node node + :origin :word}))))) + +(defn- replace-with-expanded-form [] + (let [form (extract.form {})] + (when form + (let [{: content : range} form + buf (vim.api.nvim_win_get_buf 0) + win (vim.api.nvim_tabpage_get_win 0) + me-form (.. "(" (or expand-cmd "clojure.walk/macroexpand-all") " '" content ")")] + (clj-client eval.eval-str + {:origin :conjure-macroreplace + :code me-form + :passive? true + :on-result + (fn [result] + (buffer.replace-range + buf + range result) + (editor.go-to + win + (a.get-in range [:start 1]) + (a.inc (a.get-in range [:start 2]))))}))))) + + +(defn add-buf-mappings [] + (mapping.buf :CljMacroexpand "cm" #(clj-macroexpand) + {:desc "Call macroexpand-all on the symbol under the cursor"}) + (mapping.buf :CljMacroexpand0 "c0" #(clj-macroexpand "clojure.core/macroexpand") + {:desc "Call macroexpand on the symbol under the cursor"}) + (mapping.buf :CljMacroexpand1 "c1" #(clj-macroexpand "clojure.core/macroexpand-1") + {:desc "Call macroexpand-1 on the symbol under the cursor"}) + (mapping.buf :CljMacroexpandReplace "mr" #(replace-with-expanded-form) + {:desc "Call macroexpand-1 on the symbol under the cursor then replace that src with the expansion"}) + (mapping.buf :CljDirWord "dw" #(dir-word) + {:desc "Calls (clojure.repl/dir ,,,) for the namespace under the cursor"})) + +(defn init [] + (when (or (not nvim.g.conjure_macroexpand_disable_mappings) + (= 0 nvim.g.conjure_macroexpand_disable_mappings)) + (nvim.ex.autocmd + :FileType "clojure" + (bridge.viml->lua :conjure-macroreplace.main :add-buf-mappings)))) diff --git a/lua/conjure-macroexpand/aniseed/autoload.lua b/lua/conjure-macroreplace/aniseed/autoload.lua similarity index 93% rename from lua/conjure-macroexpand/aniseed/autoload.lua rename to lua/conjure-macroreplace/aniseed/autoload.lua index 6864453..cc44833 100644 --- a/lua/conjure-macroexpand/aniseed/autoload.lua +++ b/lua/conjure-macroreplace/aniseed/autoload.lua @@ -1,5 +1,5 @@ local _2afile_2a = "fnl/aniseed/autoload.fnl" -local _2amodule_name_2a = "conjure-macroexpand.aniseed.autoload" +local _2amodule_name_2a = "conjure-macroreplace.aniseed.autoload" local _2amodule_2a do package.loaded[_2amodule_name_2a] = {} diff --git a/lua/conjure-macroexpand/aniseed/compile.lua b/lua/conjure-macroreplace/aniseed/compile.lua similarity index 86% rename from lua/conjure-macroexpand/aniseed/compile.lua rename to lua/conjure-macroreplace/aniseed/compile.lua index 8fcee64..6b6ced3 100644 --- a/lua/conjure-macroexpand/aniseed/compile.lua +++ b/lua/conjure-macroreplace/aniseed/compile.lua @@ -1,5 +1,5 @@ local _2afile_2a = "fnl/aniseed/compile.fnl" -local _2amodule_name_2a = "conjure-macroexpand.aniseed.compile" +local _2amodule_name_2a = "conjure-macroreplace.aniseed.compile" local _2amodule_2a do package.loaded[_2amodule_name_2a] = {} @@ -10,14 +10,14 @@ do _2amodule_2a["aniseed/locals"] = {} _2amodule_locals_2a = (_2amodule_2a)["aniseed/locals"] end -local autoload = (require("conjure-macroexpand.aniseed.autoload")).autoload -local a, fennel, fs, nvim = autoload("conjure-macroexpand.aniseed.core"), autoload("conjure-macroexpand.aniseed.fennel"), autoload("conjure-macroexpand.aniseed.fs"), autoload("conjure-macroexpand.aniseed.nvim") +local autoload = (require("conjure-macroreplace.aniseed.autoload")).autoload +local a, fennel, fs, nvim = autoload("conjure-macroreplace.aniseed.core"), autoload("conjure-macroreplace.aniseed.fennel"), autoload("conjure-macroreplace.aniseed.fs"), autoload("conjure-macroreplace.aniseed.nvim") do end (_2amodule_locals_2a)["a"] = a _2amodule_locals_2a["fennel"] = fennel _2amodule_locals_2a["fs"] = fs _2amodule_locals_2a["nvim"] = nvim local function wrap_macros(code, opts) - local macros_module = "conjure-macroexpand.aniseed.macros" + local macros_module = "conjure-macroreplace.aniseed.macros" local filename do local _1_ = a.get(opts, "filename") diff --git a/lua/conjure-macroexpand/aniseed/core.lua b/lua/conjure-macroreplace/aniseed/core.lua similarity index 97% rename from lua/conjure-macroexpand/aniseed/core.lua rename to lua/conjure-macroreplace/aniseed/core.lua index 6cc604d..91e06e7 100644 --- a/lua/conjure-macroexpand/aniseed/core.lua +++ b/lua/conjure-macroreplace/aniseed/core.lua @@ -1,5 +1,5 @@ local _2afile_2a = "fnl/aniseed/core.fnl" -local _2amodule_name_2a = "conjure-macroexpand.aniseed.core" +local _2amodule_name_2a = "conjure-macroreplace.aniseed.core" local _2amodule_2a do package.loaded[_2amodule_name_2a] = {} @@ -10,8 +10,8 @@ do _2amodule_2a["aniseed/locals"] = {} _2amodule_locals_2a = (_2amodule_2a)["aniseed/locals"] end -local autoload = (require("conjure-macroexpand.aniseed.autoload")).autoload -local view = autoload("conjure-macroexpand.aniseed.view") +local autoload = (require("conjure-macroreplace.aniseed.autoload")).autoload +local view = autoload("conjure-macroreplace.aniseed.view") do end (_2amodule_locals_2a)["view"] = view math.randomseed(os.time()) local function rand(n) diff --git a/lua/conjure-macroexpand/aniseed/deps/fennel.lua b/lua/conjure-macroreplace/aniseed/deps/fennel.lua similarity index 98% rename from lua/conjure-macroexpand/aniseed/deps/fennel.lua rename to lua/conjure-macroreplace/aniseed/deps/fennel.lua index a86ba69..f73f27e 100644 --- a/lua/conjure-macroexpand/aniseed/deps/fennel.lua +++ b/lua/conjure-macroreplace/aniseed/deps/fennel.lua @@ -1,9 +1,9 @@ -package.preload["conjure-macroexpand.aniseed.fennel.repl"] = package.preload["conjure-macroexpand.aniseed.fennel.repl"] or function(...) - local utils = require("conjure-macroexpand.aniseed.fennel.utils") - local parser = require("conjure-macroexpand.aniseed.fennel.parser") - local compiler = require("conjure-macroexpand.aniseed.fennel.compiler") - local specials = require("conjure-macroexpand.aniseed.fennel.specials") - local view = require("conjure-macroexpand.aniseed.fennel.view") +package.preload["conjure-macroreplace.aniseed.fennel.repl"] = package.preload["conjure-macroreplace.aniseed.fennel.repl"] or function(...) + local utils = require("conjure-macroreplace.aniseed.fennel.utils") + local parser = require("conjure-macroreplace.aniseed.fennel.parser") + local compiler = require("conjure-macroreplace.aniseed.fennel.compiler") + local specials = require("conjure-macroreplace.aniseed.fennel.specials") + local view = require("conjure-macroreplace.aniseed.fennel.view") local unpack = (table.unpack or _G.unpack) local function default_read_chunk(parser_state) local function _631_() @@ -735,11 +735,11 @@ package.preload["conjure-macroexpand.aniseed.fennel.repl"] = package.preload["co end return repl end -package.preload["conjure-macroexpand.aniseed.fennel.specials"] = package.preload["conjure-macroexpand.aniseed.fennel.specials"] or function(...) - local utils = require("conjure-macroexpand.aniseed.fennel.utils") - local view = require("conjure-macroexpand.aniseed.fennel.view") - local parser = require("conjure-macroexpand.aniseed.fennel.parser") - local compiler = require("conjure-macroexpand.aniseed.fennel.compiler") +package.preload["conjure-macroreplace.aniseed.fennel.specials"] = package.preload["conjure-macroreplace.aniseed.fennel.specials"] or function(...) + local utils = require("conjure-macroreplace.aniseed.fennel.utils") + local view = require("conjure-macroreplace.aniseed.fennel.view") + local parser = require("conjure-macroreplace.aniseed.fennel.parser") + local compiler = require("conjure-macroreplace.aniseed.fennel.compiler") local unpack = (table.unpack or _G.unpack) local SPECIALS = compiler.scopes.global.specials local function wrap_env(env) @@ -2129,7 +2129,7 @@ package.preload["conjure-macroexpand.aniseed.fennel.specials"] = package.preload end end local function sandbox_fennel_module(modname) - if ((modname == "conjure-macroexpand.aniseed.fennel.macros") or (package and package.loaded and ("table" == type(package.loaded[modname])) and (package.loaded[modname].metadata == compiler.metadata))) then + if ((modname == "conjure-macroreplace.aniseed.fennel.macros") or (package and package.loaded and ("table" == type(package.loaded[modname])) and (package.loaded[modname].metadata == compiler.metadata))) then return {metadata = compiler.metadata, view = view} else return nil @@ -2322,10 +2322,10 @@ package.preload["conjure-macroexpand.aniseed.fennel.specials"] = package.preload doc_special("eval-compiler", {"..."}, "Evaluate the body at compile-time. Use the macro system instead if possible.", true) return {doc = doc_2a, ["current-global-names"] = current_global_names, ["load-code"] = load_code, ["macro-loaded"] = macro_loaded, ["macro-searchers"] = macro_searchers, ["make-compiler-env"] = make_compiler_env, ["search-module"] = search_module, ["make-searcher"] = make_searcher, ["wrap-env"] = wrap_env} end -package.preload["conjure-macroexpand.aniseed.fennel.compiler"] = package.preload["conjure-macroexpand.aniseed.fennel.compiler"] or function(...) - local utils = require("conjure-macroexpand.aniseed.fennel.utils") - local parser = require("conjure-macroexpand.aniseed.fennel.parser") - local friend = require("conjure-macroexpand.aniseed.fennel.friend") +package.preload["conjure-macroreplace.aniseed.fennel.compiler"] = package.preload["conjure-macroreplace.aniseed.fennel.compiler"] or function(...) + local utils = require("conjure-macroreplace.aniseed.fennel.utils") + local parser = require("conjure-macroreplace.aniseed.fennel.parser") + local friend = require("conjure-macroreplace.aniseed.fennel.friend") local unpack = (table.unpack or _G.unpack) local scopes = {} local function make_scope(_3fparent) @@ -3536,8 +3536,8 @@ package.preload["conjure-macroexpand.aniseed.fennel.compiler"] = package.preload end return {compile = compile, compile1 = compile1, ["compile-stream"] = compile_stream, ["compile-string"] = compile_string, ["check-binding-valid"] = check_binding_valid, emit = emit, destructure = destructure, ["require-include"] = require_include, autogensym = autogensym, gensym = gensym, ["do-quote"] = do_quote, ["global-mangling"] = global_mangling, ["global-unmangling"] = global_unmangling, ["apply-manglings"] = apply_manglings, macroexpand = macroexpand_2a, ["declare-local"] = declare_local, ["make-scope"] = make_scope, ["keep-side-effects"] = keep_side_effects, ["symbol-to-expression"] = symbol_to_expression, assert = assert_compile, scopes = scopes, traceback = traceback, metadata = make_metadata(), sourcemap = sourcemap} end -package.preload["conjure-macroexpand.aniseed.fennel.friend"] = package.preload["conjure-macroexpand.aniseed.fennel.friend"] or function(...) - local utils = require("conjure-macroexpand.aniseed.fennel.utils") +package.preload["conjure-macroreplace.aniseed.fennel.friend"] = package.preload["conjure-macroreplace.aniseed.fennel.friend"] or function(...) + local utils = require("conjure-macroreplace.aniseed.fennel.utils") local utf8_ok_3f, utf8 = pcall(require, "utf8") local suggestions = {["unexpected multi symbol (.*)"] = {"removing periods or colons from %s"}, ["use of global (.*) is aliased by a local"] = {"renaming local %s", "refer to the global using _G.%s instead of directly"}, ["local (.*) was overshadowed by a special form or macro"] = {"renaming local %s"}, ["global (.*) conflicts with local"] = {"renaming local %s"}, ["expected var (.*)"] = {"declaring %s using var instead of let/local", "introducing a new local instead of changing the value of %s"}, ["expected macros to be table"] = {"ensuring your macro definitions return a table"}, ["expected each macro to be function"] = {"ensuring that the value for each key in your macros table contains a function", "avoid defining nested macro tables"}, ["macro not found in macro module"] = {"checking the keys of the imported macro module's returned table"}, ["macro tried to bind (.*) without gensym"] = {"changing to %s# when introducing identifiers inside macros"}, ["unknown identifier: (.*)"] = {"looking to see if there's a typo", "using the _G table instead, eg. _G.%s if you really want a global", "moving this code to somewhere that %s is in scope", "binding %s as a local in the scope of this code"}, ["expected a function.* to call"] = {"removing the empty parentheses", "using square brackets if you want an empty table"}, ["cannot call literal value"] = {"checking for typos", "checking for a missing function name", "making sure to use prefix operators, not infix"}, ["unexpected vararg"] = {"putting \"...\" at the end of the fn parameters if the vararg was intended"}, ["multisym method calls may only be in call position"] = {"using a period instead of a colon to reference a table's fields", "putting parens around this"}, ["unused local (.*)"] = {"renaming the local to _%s if it is meant to be unused", "fixing a typo so %s is used", "disabling the linter which checks for unused locals"}, ["expected parameters"] = {"adding function parameters as a list of identifiers in brackets"}, ["unable to bind (.*)"] = {"replacing the %s with an identifier"}, ["expected rest argument before last parameter"] = {"moving & to right before the final identifier when destructuring"}, ["expected vararg as last parameter"] = {"moving the \"...\" to the end of the parameter list"}, ["expected symbol for function parameter: (.*)"] = {"changing %s to an identifier instead of a literal value"}, ["could not compile value of type "] = {"debugging the macro you're calling to return a list or table"}, ["expected local"] = {"looking for a typo", "looking for a local which is used out of its scope"}, ["expected body expression"] = {"putting some code in the body of this form after the bindings"}, ["expected binding and iterator"] = {"making sure you haven't omitted a local name or iterator"}, ["expected binding sequence"] = {"placing a table here in square brackets containing identifiers to bind"}, ["expected even number of name/value bindings"] = {"finding where the identifier or value is missing"}, ["may only be used at compile time"] = {"moving this to inside a macro if you need to manipulate symbols/lists", "using square brackets instead of parens to construct a table"}, ["unexpected closing delimiter (.)"] = {"deleting %s", "adding matching opening delimiter earlier"}, ["mismatched closing delimiter (.), expected (.)"] = {"replacing %s with %s", "deleting %s", "adding matching opening delimiter earlier"}, ["expected even number of values in table literal"] = {"removing a key", "adding a value"}, ["expected whitespace before opening delimiter"] = {"adding whitespace"}, ["invalid character: (.)"] = {"deleting or replacing %s", "avoiding reserved characters like \", \\, ', ~, ;, @, `, and comma"}, ["could not read number (.*)"] = {"removing the non-digit character", "beginning the identifier with a non-digit if it is not meant to be a number"}, ["can't start multisym segment with a digit"] = {"removing the digit", "adding a non-digit before the digit"}, ["malformed multisym"] = {"ensuring each period or colon is not followed by another period or colon"}, ["method must be last component"] = {"using a period instead of a colon for field access", "removing segments after the colon", "making the method call, then looking up the field on the result"}, ["$ and $... in hashfn are mutually exclusive"] = {"modifying the hashfn so it only contains $... or $, $1, $2, $3, etc"}, ["tried to reference a macro without calling it"] = {"renaming the macro so as not to conflict with locals"}, ["tried to reference a special form without calling it"] = {"making sure to use prefix operators, not infix", "wrapping the special in a function if you need it to be first class"}, ["missing subject"] = {"adding an item to operate on"}, ["expected even number of pattern/body pairs"] = {"checking that every pattern has a body to go with it", "adding _ before the final body"}, ["expected at least one pattern/body pair"] = {"adding a pattern and a body to execute when the pattern matches"}, ["unexpected arguments"] = {"removing an argument", "checking for typos"}, ["unexpected iterator clause"] = {"removing an argument", "checking for typos"}} local unpack = (table.unpack or _G.unpack) @@ -3655,9 +3655,9 @@ package.preload["conjure-macroexpand.aniseed.fennel.friend"] = package.preload[" end return {["assert-compile"] = assert_compile, ["parse-error"] = parse_error} end -package.preload["conjure-macroexpand.aniseed.fennel.parser"] = package.preload["conjure-macroexpand.aniseed.fennel.parser"] or function(...) - local utils = require("conjure-macroexpand.aniseed.fennel.utils") - local friend = require("conjure-macroexpand.aniseed.fennel.friend") +package.preload["conjure-macroreplace.aniseed.fennel.parser"] = package.preload["conjure-macroreplace.aniseed.fennel.parser"] or function(...) + local utils = require("conjure-macroreplace.aniseed.fennel.utils") + local friend = require("conjure-macroreplace.aniseed.fennel.friend") local unpack = (table.unpack or _G.unpack) local function granulate(getchunk) local c, index, done_3f = "", 1, false @@ -4133,7 +4133,7 @@ package.preload["conjure-macroexpand.aniseed.fennel.parser"] = package.preload[" return {granulate = granulate, parser = parser, ["string-stream"] = string_stream, ["sym-char?"] = sym_char_3f} end local utils -package.preload["conjure-macroexpand.aniseed.fennel.view"] = package.preload["conjure-macroexpand.aniseed.fennel.view"] or function(...) +package.preload["conjure-macroreplace.aniseed.fennel.view"] = package.preload["conjure-macroreplace.aniseed.fennel.view"] or function(...) local type_order = {number = 1, boolean = 2, string = 3, table = 4, ["function"] = 5, userdata = 6, thread = 7} local default_opts = {["one-line?"] = false, ["detect-cycles?"] = true, ["empty-as-sequence?"] = false, ["metamethod?"] = true, ["prefer-colon?"] = false, ["escape-newlines?"] = false, ["utf8?"] = true, ["line-length"] = 80, depth = 128, ["max-sparse-gap"] = 10} local lua_pairs = pairs @@ -4780,8 +4780,8 @@ package.preload["conjure-macroexpand.aniseed.fennel.view"] = package.preload["co end return view end -package.preload["conjure-macroexpand.aniseed.fennel.utils"] = package.preload["conjure-macroexpand.aniseed.fennel.utils"] or function(...) - local view = require("conjure-macroexpand.aniseed.fennel.view") +package.preload["conjure-macroreplace.aniseed.fennel.utils"] = package.preload["conjure-macroreplace.aniseed.fennel.utils"] or function(...) + local view = require("conjure-macroreplace.aniseed.fennel.view") local version = "1.3.0" local function luajit_vm_3f() return ((nil ~= _G.jit) and (type(_G.jit) == "table") and (nil ~= _G.jit.on) and (nil ~= _G.jit.off) and (type(_G.jit.version_num) == "number")) @@ -5332,12 +5332,12 @@ package.preload["conjure-macroexpand.aniseed.fennel.utils"] = package.preload["c end return {warn = warn, allpairs = allpairs, stablepairs = stablepairs, copy = copy, ["get-in"] = get_in, kvmap = kvmap, map = map, ["walk-tree"] = walk_tree, ["member?"] = member_3f, maxn = maxn, ["every?"] = every_3f, list = list, sequence = sequence, sym = sym, varg = varg, expr = expr, comment = comment_2a, ["comment?"] = comment_3f, ["expr?"] = expr_3f, ["list?"] = list_3f, ["multi-sym?"] = multi_sym_3f, ["sequence?"] = sequence_3f, ["sym?"] = sym_3f, ["table?"] = table_3f, ["varg?"] = varg_3f, ["quoted?"] = quoted_3f, ["string?"] = string_3f, ["idempotent-expr?"] = idempotent_expr_3f, ["valid-lua-identifier?"] = valid_lua_identifier_3f, ["lua-keywords"] = lua_keywords, hook = hook, ["hook-opts"] = hook_opts, ["propagate-options"] = propagate_options, root = root, ["debug-on?"] = debug_on_3f, ["ast-source"] = ast_source, version = version, ["runtime-version"] = runtime_version, len = len, path = table.concat({"./?.fnl", "./?/init.fnl", getenv("FENNEL_PATH")}, ";"), ["macro-path"] = table.concat({"./?.fnl", "./?/init-macros.fnl", "./?/init.fnl", getenv("FENNEL_MACRO_PATH")}, ";")} end -utils = require("conjure-macroexpand.aniseed.fennel.utils") -local parser = require("conjure-macroexpand.aniseed.fennel.parser") -local compiler = require("conjure-macroexpand.aniseed.fennel.compiler") -local specials = require("conjure-macroexpand.aniseed.fennel.specials") -local repl = require("conjure-macroexpand.aniseed.fennel.repl") -local view = require("conjure-macroexpand.aniseed.fennel.view") +utils = require("conjure-macroreplace.aniseed.fennel.utils") +local parser = require("conjure-macroreplace.aniseed.fennel.parser") +local compiler = require("conjure-macroreplace.aniseed.fennel.compiler") +local specials = require("conjure-macroreplace.aniseed.fennel.specials") +local repl = require("conjure-macroreplace.aniseed.fennel.repl") +local view = require("conjure-macroreplace.aniseed.fennel.view") local function eval_env(env, opts) if (env == "_COMPILER") then local env0 = specials["make-compiler-env"](nil, compiler.scopes.compiler, {}, opts) @@ -5426,7 +5426,7 @@ mod.install = function(_3fopts) end utils["fennel-module"] = mod do - local module_name = "conjure-macroexpand.aniseed.fennel.macros" + local module_name = "conjure-macroreplace.aniseed.fennel.macros" local _ local function _757_() return mod diff --git a/lua/conjure-macroexpand/aniseed/deps/fun.lua b/lua/conjure-macroreplace/aniseed/deps/fun.lua similarity index 100% rename from lua/conjure-macroexpand/aniseed/deps/fun.lua rename to lua/conjure-macroreplace/aniseed/deps/fun.lua diff --git a/lua/conjure-macroexpand/aniseed/deps/nvim.lua b/lua/conjure-macroreplace/aniseed/deps/nvim.lua similarity index 100% rename from lua/conjure-macroexpand/aniseed/deps/nvim.lua rename to lua/conjure-macroreplace/aniseed/deps/nvim.lua diff --git a/lua/conjure-macroexpand/aniseed/env.lua b/lua/conjure-macroreplace/aniseed/env.lua similarity index 83% rename from lua/conjure-macroexpand/aniseed/env.lua rename to lua/conjure-macroreplace/aniseed/env.lua index 2e0bec2..078aaba 100644 --- a/lua/conjure-macroexpand/aniseed/env.lua +++ b/lua/conjure-macroreplace/aniseed/env.lua @@ -1,5 +1,5 @@ local _2afile_2a = "fnl/aniseed/env.fnl" -local _2amodule_name_2a = "conjure-macroexpand.aniseed.env" +local _2amodule_name_2a = "conjure-macroreplace.aniseed.env" local _2amodule_2a do package.loaded[_2amodule_name_2a] = {} @@ -10,8 +10,8 @@ do _2amodule_2a["aniseed/locals"] = {} _2amodule_locals_2a = (_2amodule_2a)["aniseed/locals"] end -local autoload = (require("conjure-macroexpand.aniseed.autoload")).autoload -local compile, fennel, fs, nvim = autoload("conjure-macroexpand.aniseed.compile"), autoload("conjure-macroexpand.aniseed.fennel"), autoload("conjure-macroexpand.aniseed.fs"), autoload("conjure-macroexpand.aniseed.nvim") +local autoload = (require("conjure-macroreplace.aniseed.autoload")).autoload +local compile, fennel, fs, nvim = autoload("conjure-macroreplace.aniseed.compile"), autoload("conjure-macroreplace.aniseed.fennel"), autoload("conjure-macroreplace.aniseed.fs"), autoload("conjure-macroreplace.aniseed.nvim") do end (_2amodule_locals_2a)["compile"] = compile _2amodule_locals_2a["fennel"] = fennel _2amodule_locals_2a["fs"] = fs diff --git a/lua/conjure-macroexpand/aniseed/eval.lua b/lua/conjure-macroreplace/aniseed/eval.lua similarity index 83% rename from lua/conjure-macroexpand/aniseed/eval.lua rename to lua/conjure-macroreplace/aniseed/eval.lua index c975008..284f6ac 100644 --- a/lua/conjure-macroexpand/aniseed/eval.lua +++ b/lua/conjure-macroreplace/aniseed/eval.lua @@ -1,5 +1,5 @@ local _2afile_2a = "fnl/aniseed/eval.fnl" -local _2amodule_name_2a = "conjure-macroexpand.aniseed.eval" +local _2amodule_name_2a = "conjure-macroreplace.aniseed.eval" local _2amodule_2a do package.loaded[_2amodule_name_2a] = {} @@ -10,8 +10,8 @@ do _2amodule_2a["aniseed/locals"] = {} _2amodule_locals_2a = (_2amodule_2a)["aniseed/locals"] end -local autoload = (require("conjure-macroexpand.aniseed.autoload")).autoload -local a, compile, fennel, fs, nvim = autoload("conjure-macroexpand.aniseed.core"), autoload("conjure-macroexpand.aniseed.compile"), autoload("conjure-macroexpand.aniseed.fennel"), autoload("conjure-macroexpand.aniseed.fs"), autoload("conjure-macroexpand.aniseed.nvim") +local autoload = (require("conjure-macroreplace.aniseed.autoload")).autoload +local a, compile, fennel, fs, nvim = autoload("conjure-macroreplace.aniseed.core"), autoload("conjure-macroreplace.aniseed.compile"), autoload("conjure-macroreplace.aniseed.fennel"), autoload("conjure-macroreplace.aniseed.fs"), autoload("conjure-macroreplace.aniseed.nvim") do end (_2amodule_locals_2a)["a"] = a _2amodule_locals_2a["compile"] = compile _2amodule_locals_2a["fennel"] = fennel diff --git a/lua/conjure-macroexpand/aniseed/fennel.lua b/lua/conjure-macroreplace/aniseed/fennel.lua similarity index 77% rename from lua/conjure-macroexpand/aniseed/fennel.lua rename to lua/conjure-macroreplace/aniseed/fennel.lua index 855b801..ae7120e 100644 --- a/lua/conjure-macroexpand/aniseed/fennel.lua +++ b/lua/conjure-macroreplace/aniseed/fennel.lua @@ -1,5 +1,5 @@ local _2afile_2a = "fnl/aniseed/fennel.fnl" -local _2amodule_name_2a = "conjure-macroexpand.aniseed.fennel" +local _2amodule_name_2a = "conjure-macroreplace.aniseed.fennel" local _2amodule_2a do package.loaded[_2amodule_name_2a] = {} @@ -10,8 +10,8 @@ do _2amodule_2a["aniseed/locals"] = {} _2amodule_locals_2a = (_2amodule_2a)["aniseed/locals"] end -local autoload = (require("conjure-macroexpand.aniseed.autoload")).autoload -local a, fs, nvim, str = autoload("conjure-macroexpand.aniseed.core"), autoload("conjure-macroexpand.aniseed.fs"), autoload("conjure-macroexpand.aniseed.nvim"), autoload("conjure-macroexpand.aniseed.string") +local autoload = (require("conjure-macroreplace.aniseed.autoload")).autoload +local a, fs, nvim, str = autoload("conjure-macroreplace.aniseed.core"), autoload("conjure-macroreplace.aniseed.fs"), autoload("conjure-macroreplace.aniseed.nvim"), autoload("conjure-macroreplace.aniseed.string") do end (_2amodule_locals_2a)["a"] = a _2amodule_locals_2a["fs"] = fs _2amodule_locals_2a["nvim"] = nvim @@ -37,7 +37,7 @@ _2amodule_2a["sync-rtp"] = sync_rtp local state = {["compiler-loaded?"] = false} _2amodule_locals_2a["state"] = state local function impl() - local compiler = require("conjure-macroexpand.aniseed.deps.fennel") + local compiler = require("conjure-macroreplace.aniseed.deps.fennel") if not state["compiler-loaded?"] then state["compiler-loaded?"] = true sync_rtp(compiler) diff --git a/lua/conjure-macroexpand/aniseed/fs.lua b/lua/conjure-macroreplace/aniseed/fs.lua similarity index 86% rename from lua/conjure-macroexpand/aniseed/fs.lua rename to lua/conjure-macroreplace/aniseed/fs.lua index 244262f..9f4e3bb 100644 --- a/lua/conjure-macroexpand/aniseed/fs.lua +++ b/lua/conjure-macroreplace/aniseed/fs.lua @@ -1,5 +1,5 @@ local _2afile_2a = "fnl/aniseed/fs.fnl" -local _2amodule_name_2a = "conjure-macroexpand.aniseed.fs" +local _2amodule_name_2a = "conjure-macroreplace.aniseed.fs" local _2amodule_2a do package.loaded[_2amodule_name_2a] = {} @@ -10,8 +10,8 @@ do _2amodule_2a["aniseed/locals"] = {} _2amodule_locals_2a = (_2amodule_2a)["aniseed/locals"] end -local autoload = (require("conjure-macroexpand.aniseed.autoload")).autoload -local a, nvim = autoload("conjure-macroexpand.aniseed.core"), autoload("conjure-macroexpand.aniseed.nvim") +local autoload = (require("conjure-macroreplace.aniseed.autoload")).autoload +local a, nvim = autoload("conjure-macroreplace.aniseed.core"), autoload("conjure-macroreplace.aniseed.nvim") do end (_2amodule_locals_2a)["a"] = a _2amodule_locals_2a["nvim"] = nvim local function basename(path) diff --git a/lua/conjure-macroexpand/aniseed/macros.fnl b/lua/conjure-macroreplace/aniseed/macros.fnl similarity index 99% rename from lua/conjure-macroexpand/aniseed/macros.fnl rename to lua/conjure-macroreplace/aniseed/macros.fnl index 41f49b7..ffe1b1f 100644 --- a/lua/conjure-macroexpand/aniseed/macros.fnl +++ b/lua/conjure-macroreplace/aniseed/macros.fnl @@ -136,7 +136,7 @@ ;; Only require autoload if it's used. (when (contains? mod-fns autoload-sym) - (table.insert result `(local ,autoload-sym (. (require "conjure-macroexpand.aniseed.autoload") :autoload))))) + (table.insert result `(local ,autoload-sym (. (require "conjure-macroreplace.aniseed.autoload") :autoload))))) ;; When we have some keys insert the key/vals pairs locals. ;; If this is empty we end up generating invalid Lua. diff --git a/lua/conjure-macroexpand/aniseed/macros/autocmds.fnl b/lua/conjure-macroreplace/aniseed/macros/autocmds.fnl similarity index 100% rename from lua/conjure-macroexpand/aniseed/macros/autocmds.fnl rename to lua/conjure-macroreplace/aniseed/macros/autocmds.fnl diff --git a/lua/conjure-macroexpand/aniseed/nvim.lua b/lua/conjure-macroreplace/aniseed/nvim.lua similarity index 62% rename from lua/conjure-macroexpand/aniseed/nvim.lua rename to lua/conjure-macroreplace/aniseed/nvim.lua index 06d81a4..a9b704c 100644 --- a/lua/conjure-macroexpand/aniseed/nvim.lua +++ b/lua/conjure-macroreplace/aniseed/nvim.lua @@ -1,8 +1,8 @@ local _2afile_2a = "fnl/aniseed/nvim.fnl" -local _2amodule_name_2a = "conjure-macroexpand.aniseed.nvim" +local _2amodule_name_2a = "conjure-macroreplace.aniseed.nvim" local _2amodule_2a do - package.loaded[_2amodule_name_2a] = require("conjure-macroexpand.aniseed.deps.nvim") + package.loaded[_2amodule_name_2a] = require("conjure-macroreplace.aniseed.deps.nvim") _2amodule_2a = package.loaded[_2amodule_name_2a] end local _2amodule_locals_2a diff --git a/lua/conjure-macroexpand/aniseed/nvim/util.lua b/lua/conjure-macroreplace/aniseed/nvim/util.lua similarity index 88% rename from lua/conjure-macroexpand/aniseed/nvim/util.lua rename to lua/conjure-macroreplace/aniseed/nvim/util.lua index df98ac5..3faa6c0 100644 --- a/lua/conjure-macroexpand/aniseed/nvim/util.lua +++ b/lua/conjure-macroreplace/aniseed/nvim/util.lua @@ -1,5 +1,5 @@ local _2afile_2a = "fnl/aniseed/nvim/util.fnl" -local _2amodule_name_2a = "conjure-macroexpand.aniseed.nvim.util" +local _2amodule_name_2a = "conjure-macroreplace.aniseed.nvim.util" local _2amodule_2a do package.loaded[_2amodule_name_2a] = {} @@ -10,8 +10,8 @@ do _2amodule_2a["aniseed/locals"] = {} _2amodule_locals_2a = (_2amodule_2a)["aniseed/locals"] end -local autoload = (require("conjure-macroexpand.aniseed.autoload")).autoload -local nvim = autoload("conjure-macroexpand.aniseed.nvim") +local autoload = (require("conjure-macroreplace.aniseed.autoload")).autoload +local nvim = autoload("conjure-macroreplace.aniseed.nvim") do end (_2amodule_locals_2a)["nvim"] = nvim local function normal(keys) return nvim.ex.silent(("exe \"normal! " .. keys .. "\"")) diff --git a/lua/conjure-macroexpand/aniseed/setup.lua b/lua/conjure-macroreplace/aniseed/setup.lua similarity index 81% rename from lua/conjure-macroexpand/aniseed/setup.lua rename to lua/conjure-macroreplace/aniseed/setup.lua index f062d48..6d1293e 100644 --- a/lua/conjure-macroexpand/aniseed/setup.lua +++ b/lua/conjure-macroreplace/aniseed/setup.lua @@ -1,5 +1,5 @@ local _2afile_2a = "fnl/aniseed/setup.fnl" -local _2amodule_name_2a = "conjure-macroexpand.aniseed.setup" +local _2amodule_name_2a = "conjure-macroreplace.aniseed.setup" local _2amodule_2a do package.loaded[_2amodule_name_2a] = {} @@ -10,8 +10,8 @@ do _2amodule_2a["aniseed/locals"] = {} _2amodule_locals_2a = (_2amodule_2a)["aniseed/locals"] end -local autoload = (require("conjure-macroexpand.aniseed.autoload")).autoload -local a, env, eval, nvim = autoload("conjure-macroexpand.aniseed.core"), autoload("conjure-macroexpand.aniseed.env"), autoload("conjure-macroexpand.aniseed.eval"), autoload("conjure-macroexpand.aniseed.nvim") +local autoload = (require("conjure-macroreplace.aniseed.autoload")).autoload +local a, env, eval, nvim = autoload("conjure-macroreplace.aniseed.core"), autoload("conjure-macroreplace.aniseed.env"), autoload("conjure-macroreplace.aniseed.eval"), autoload("conjure-macroreplace.aniseed.nvim") do end (_2amodule_locals_2a)["a"] = a _2amodule_locals_2a["env"] = env _2amodule_locals_2a["eval"] = eval diff --git a/lua/conjure-macroexpand/aniseed/string.lua b/lua/conjure-macroreplace/aniseed/string.lua similarity index 90% rename from lua/conjure-macroexpand/aniseed/string.lua rename to lua/conjure-macroreplace/aniseed/string.lua index 1996330..7f55ced 100644 --- a/lua/conjure-macroexpand/aniseed/string.lua +++ b/lua/conjure-macroreplace/aniseed/string.lua @@ -1,5 +1,5 @@ local _2afile_2a = "fnl/aniseed/string.fnl" -local _2amodule_name_2a = "conjure-macroexpand.aniseed.string" +local _2amodule_name_2a = "conjure-macroreplace.aniseed.string" local _2amodule_2a do package.loaded[_2amodule_name_2a] = {} @@ -10,8 +10,8 @@ do _2amodule_2a["aniseed/locals"] = {} _2amodule_locals_2a = (_2amodule_2a)["aniseed/locals"] end -local autoload = (require("conjure-macroexpand.aniseed.autoload")).autoload -local a = autoload("conjure-macroexpand.aniseed.core") +local autoload = (require("conjure-macroreplace.aniseed.autoload")).autoload +local a = autoload("conjure-macroreplace.aniseed.core") do end (_2amodule_locals_2a)["a"] = a local function join(...) local args = {...} diff --git a/lua/conjure-macroexpand/aniseed/test.lua b/lua/conjure-macroreplace/aniseed/test.lua similarity index 93% rename from lua/conjure-macroexpand/aniseed/test.lua rename to lua/conjure-macroreplace/aniseed/test.lua index 5839fe2..cc2085e 100644 --- a/lua/conjure-macroexpand/aniseed/test.lua +++ b/lua/conjure-macroreplace/aniseed/test.lua @@ -1,5 +1,5 @@ local _2afile_2a = "fnl/aniseed/test.fnl" -local _2amodule_name_2a = "conjure-macroexpand.aniseed.test" +local _2amodule_name_2a = "conjure-macroreplace.aniseed.test" local _2amodule_2a do package.loaded[_2amodule_name_2a] = {} @@ -10,8 +10,8 @@ do _2amodule_2a["aniseed/locals"] = {} _2amodule_locals_2a = (_2amodule_2a)["aniseed/locals"] end -local autoload = (require("conjure-macroexpand.aniseed.autoload")).autoload -local a, fs, nvim, str = autoload("conjure-macroexpand.aniseed.core"), autoload("conjure-macroexpand.aniseed.fs"), autoload("conjure-macroexpand.aniseed.nvim"), autoload("conjure-macroexpand.aniseed.string") +local autoload = (require("conjure-macroreplace.aniseed.autoload")).autoload +local a, fs, nvim, str = autoload("conjure-macroreplace.aniseed.core"), autoload("conjure-macroreplace.aniseed.fs"), autoload("conjure-macroreplace.aniseed.nvim"), autoload("conjure-macroreplace.aniseed.string") do end (_2amodule_locals_2a)["a"] = a _2amodule_locals_2a["fs"] = fs _2amodule_locals_2a["nvim"] = nvim diff --git a/lua/conjure-macroexpand/aniseed/view.lua b/lua/conjure-macroreplace/aniseed/view.lua similarity index 78% rename from lua/conjure-macroexpand/aniseed/view.lua rename to lua/conjure-macroreplace/aniseed/view.lua index 80fe450..7b2f3d7 100644 --- a/lua/conjure-macroexpand/aniseed/view.lua +++ b/lua/conjure-macroreplace/aniseed/view.lua @@ -1,5 +1,5 @@ local _2afile_2a = "fnl/aniseed/view.fnl" -local _2amodule_name_2a = "conjure-macroexpand.aniseed.view" +local _2amodule_name_2a = "conjure-macroreplace.aniseed.view" local _2amodule_2a do package.loaded[_2amodule_name_2a] = {} @@ -10,7 +10,7 @@ do _2amodule_2a["aniseed/locals"] = {} _2amodule_locals_2a = (_2amodule_2a)["aniseed/locals"] end -local fnl = require("conjure-macroexpand.aniseed.fennel") +local fnl = require("conjure-macroreplace.aniseed.fennel") do end (_2amodule_locals_2a)["fnl"] = fnl local function serialise(...) return fnl.impl().view(...) diff --git a/lua/conjure-macroexpand/main.lua b/lua/conjure-macroreplace/main.lua similarity index 50% rename from lua/conjure-macroexpand/main.lua rename to lua/conjure-macroreplace/main.lua index 9368d29..ee81eec 100644 --- a/lua/conjure-macroexpand/main.lua +++ b/lua/conjure-macroreplace/main.lua @@ -1,5 +1,5 @@ -local _2afile_2a = "fnl/conjure-macroexpand/main.fnl" -local _2amodule_name_2a = "conjure-macroexpand.main" +local _2afile_2a = "fnl/conjure-macroreplace/main.fnl" +local _2amodule_name_2a = "conjure-macroreplace.main" local _2amodule_2a do package.loaded[_2amodule_name_2a] = {} @@ -10,10 +10,12 @@ do _2amodule_2a["aniseed/locals"] = {} _2amodule_locals_2a = (_2amodule_2a)["aniseed/locals"] end -local a, bridge, client, eval, extract, log, mapping, nvim, str = require("conjure-macroexpand.aniseed.core"), require("conjure.bridge"), require("conjure.client"), require("conjure.eval"), require("conjure.extract"), require("conjure.log"), require("conjure.mapping"), require("conjure-macroexpand.aniseed.nvim"), require("conjure-macroexpand.aniseed.string") +local a, bridge, buffer, client, editor, eval, extract, log, mapping, nvim, str = require("conjure-macroreplace.aniseed.core"), require("conjure.bridge"), require("conjure.buffer"), require("conjure.client"), require("conjure.editor"), require("conjure.eval"), require("conjure.extract"), require("conjure.log"), require("conjure.mapping"), require("conjure-macroreplace.aniseed.nvim"), require("conjure-macroreplace.aniseed.string") do end (_2amodule_locals_2a)["a"] = a _2amodule_locals_2a["bridge"] = bridge +_2amodule_locals_2a["buffer"] = buffer _2amodule_locals_2a["client"] = client +_2amodule_locals_2a["editor"] = editor _2amodule_locals_2a["eval"] = eval _2amodule_locals_2a["extract"] = extract _2amodule_locals_2a["log"] = log @@ -48,73 +50,64 @@ local function clj_macroexpand(expand_cmd) return clj_client(eval["eval-str"], {origin = "conjure-macroexpand", code = me_form, ["passive?"] = true, ["on-result"] = output_expanded(me_form)}) end _2amodule_2a["clj-macroexpand"] = clj_macroexpand -local function wrap_emit(name, f) - local function _4_(...) - event.emit(name) - return f(...) - end - return _4_ -end -_2amodule_2a["wrap-emit"] = wrap_emit -local dir_str = wrap_emit("doc", __fnl_global__client_2dexec_2dfn("doc", "doc-str")) local function dir_word() - local _let_5_ = extract.word() - local content = _let_5_["content"] - local range = _let_5_["range"] - local node = _let_5_["node"] - if not core["empty?"](content) then - return dir_str({code = content, range = range, node = node, origin = "word"}) + local _let_4_ = extract.word() + local content = _let_4_["content"] + local range = _let_4_["range"] + local node = _let_4_["node"] + if not a["empty?"](content) then + local dir_code = ("(clojure.repl/dir " .. content .. ")") + return clj_client(eval["eval-str"], {code = dir_code, range = range, node = node, origin = "word"}) else return nil end end -_2amodule_2a["dir-word"] = dir_word -local function replace_form() - local buf = vim.api.nvim_win_get_buf(0) - local win = vim.api.nvim_tabpage_get_win(0) +_2amodule_locals_2a["dir-word"] = dir_word +local function replace_with_expanded_form() local form = extract.form({}) if form then - local _let_7_ = form - local content = _let_7_["content"] - local range = _let_7_["range"] - local node = _let_7_["node"] - local function _8_(result) - buffer.replacerange(buf, range, result) - return editor["go-to"](win, core["get-in"](range, {"start", 1}), core.inc(core["get-in"](range, {"start", 2}))) + local _let_6_ = form + local content = _let_6_["content"] + local range = _let_6_["range"] + local buf = vim.api.nvim_win_get_buf(0) + local win = vim.api.nvim_tabpage_get_win(0) + local me_form = ("(" .. (__fnl_global__expand_2dcmd or "clojure.walk/macroexpand-all") .. " '" .. content .. ")") + local function _7_(result) + buffer["replace-range"](buf, range, result) + return editor["go-to"](win, a["get-in"](range, {"start", 1}), a.inc(a["get-in"](range, {"start", 2}))) end - __fnl_global__eval_2dstr({code = content, range = range, node = node, origin = "replace-form", ["suppress-hud?"] = true, ["on-result"] = _8_}) - return ("(clojure.core/macroexpand1 " .. form .. ")") + return clj_client(eval["eval-str"], {origin = "conjure-macroreplace", code = me_form, ["passive?"] = true, ["on-result"] = _7_}) else return nil end end -_2amodule_2a["replace-form"] = replace_form +_2amodule_locals_2a["replace-with-expanded-form"] = replace_with_expanded_form local function add_buf_mappings() - local function _10_() + local function _9_() return clj_macroexpand() end - mapping.buf("CljMacroexpand", "cm", _10_, {desc = "Call macroexpand-all on the symbol under the cursor"}) - local function _11_() + mapping.buf("CljMacroexpand", "cm", _9_, {desc = "Call macroexpand-all on the symbol under the cursor"}) + local function _10_() return clj_macroexpand("clojure.core/macroexpand") end - mapping.buf("CljMacroexpand0", "c0", _11_, {desc = "Call macroexpand on the symbol under the cursor"}) - local function _12_() + mapping.buf("CljMacroexpand0", "c0", _10_, {desc = "Call macroexpand on the symbol under the cursor"}) + local function _11_() return clj_macroexpand("clojure.core/macroexpand-1") end - mapping.buf("CljMacroexpand1", "c1", _12_, {desc = "Call macroexpand-1 on the symbol under the cursor"}) - local function _13_() - return replace_form() + mapping.buf("CljMacroexpand1", "c1", _11_, {desc = "Call macroexpand-1 on the symbol under the cursor"}) + local function _12_() + return replace_with_expanded_form() end - mapping.buf("CljMacroexpandReplace", "em!", _13_, {desc = "Call macroexpand-1 on the symbol under the cursor then replace that src with the expansion"}) - local function _14_() + mapping.buf("CljMacroexpandReplace", "mr", _12_, {desc = "Call macroexpand-1 on the symbol under the cursor then replace that src with the expansion"}) + local function _13_() return dir_word() end - return mapping.buf("CljDirWord", "em!", _14_, {desc = "Calls (clojure.repl/dir ,,,) for the namespace under the cursor"}) + return mapping.buf("CljDirWord", "dw", _13_, {desc = "Calls (clojure.repl/dir ,,,) for the namespace under the cursor"}) end _2amodule_2a["add-buf-mappings"] = add_buf_mappings local function init() if (not nvim.g.conjure_macroexpand_disable_mappings or (0 == nvim.g.conjure_macroexpand_disable_mappings)) then - return nvim.ex.autocmd("FileType", "clojure", bridge["viml->lua"]("conjure-macroexpand.main", "add-buf-mappings")) + return nvim.ex.autocmd("FileType", "clojure", bridge["viml->lua"]("conjure-macroreplace.main", "add-buf-mappings")) else return nil end diff --git a/plugin/conjure-macroexpand.vim b/plugin/conjure-macroexpand.vim deleted file mode 100644 index cb48f0d..0000000 --- a/plugin/conjure-macroexpand.vim +++ /dev/null @@ -1,3 +0,0 @@ -if has("nvim") - lua require("conjure-macroexpand.main").init() -endif diff --git a/plugin/conjure-macroreplace.vim b/plugin/conjure-macroreplace.vim new file mode 100644 index 0000000..e7dc507 --- /dev/null +++ b/plugin/conjure-macroreplace.vim @@ -0,0 +1,3 @@ +if has("nvim") + lua require("conjure-macroreplace.main").init() +endif diff --git a/test/fnl/conjure-macroexpand/main-test.fnl b/test/fnl/conjure-macroreplace/main-test.fnl similarity index 62% rename from test/fnl/conjure-macroexpand/main-test.fnl rename to test/fnl/conjure-macroreplace/main-test.fnl index 7f4d62c..784ad02 100644 --- a/test/fnl/conjure-macroexpand/main-test.fnl +++ b/test/fnl/conjure-macroreplace/main-test.fnl @@ -1,4 +1,4 @@ -(module conjure-macroexpand.main-test) +(module conjure-macroreplace.main-test) (deftest something-simple (t.= 1 1 "1 should equal 1, I hope!"))