summaryrefslogtreecommitdiff
path: root/fnl/config/ncomment.fnl
diff options
context:
space:
mode:
Diffstat (limited to 'fnl/config/ncomment.fnl')
-rw-r--r--fnl/config/ncomment.fnl23
1 files changed, 23 insertions, 0 deletions
diff --git a/fnl/config/ncomment.fnl b/fnl/config/ncomment.fnl
new file mode 100644
index 0000000..217ba6d
--- /dev/null
+++ b/fnl/config/ncomment.fnl
@@ -0,0 +1,23 @@
+;; Language aware commenting.
+(module config.ncomment {autoload {util util}})
+
+(defn- get-type [ctx U] (or (and (= ctx.ctype U.ctype.line) :__default)
+ :__multiline))
+
+(defn- get-location [ctx U] (if (= ctx.ctype U.ctype.block)
+ ((require :ts_context_commentstring.utils) .get_cursor_location)
+ (or (= ctx.motion U.motion.v)
+ (= ctx.motion U.cmotion.V))
+ ((require :ts_context_commentstring.utils) .get_visual_start_location)
+ nil))
+
+(defn- pre-hook [ctx]
+ (let [U (require :Comment.utils)]
+ ((require :ts_context_commentstring.internal) .calculate_commentstring
+ {:key (get-type ctx U)
+ :location (get-location ctx
+ U)})))
+
+(let [ncomment (util.load-plugin :Comment)]
+ (ncomment.setup {:pre_hook (fn [ctx]
+ (pre-hook ctx))}))