[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/lua-mode 08cff6e 081/468: Implement basic multiline-aware
From: |
Philip Kaludercic |
Subject: |
[nongnu] elpa/lua-mode 08cff6e 081/468: Implement basic multiline-aware functionality |
Date: |
Thu, 5 Aug 2021 04:58:12 -0400 (EDT) |
branch: elpa/lua-mode
commit 08cff6e3c2aa860bc26a43dc2cde1ca66558597b
Author: immerrr <immerrr@gmail.com>
Commit: immerrr <immerrr@gmail.com>
Implement basic multiline-aware functionality
---
lua-mode.el | 32 +++++++++++++++++++++++++++++++-
1 file changed, 31 insertions(+), 1 deletion(-)
diff --git a/lua-mode.el b/lua-mode.el
index be6dac1..f8dc2eb 100644
--- a/lua-mode.el
+++ b/lua-mode.el
@@ -363,12 +363,13 @@ The following keys are bound:
,(regexp-opt (mapcar 'car lua-sexp-alist) 'words) ;start
,(regexp-opt (mapcar 'cdr lua-sexp-alist) 'words) ;end
nil lua-forward-sexp)))
+
+ (set (make-local-variable 'parse-sexp-lookup-properties) t)
(run-hooks 'lua-mode-hook)))
;;;###autoload
(add-to-list 'auto-mode-alist '("\\.lua$" . lua-mode))
-
(defun lua-electric-match (arg)
"Insert character and adjust indentation."
(interactive "P")
@@ -1165,6 +1166,35 @@ left out."
(define-key lua-mode-menu [search-documentation]
'("Search Documentation" . lua-search-documentation))
+(defsubst lua-put-char-property (pos property value &optional object)
+ (if value
+ (put-text-property pos (1+ pos) property value object)
+ (remove-text-properties pos (1+ pos) (list property nil))))
+
+(defsubst lua-put-char-syntax-table (pos value &optional object)
+ (lua-put-char-property pos 'syntax-table value object))
+
+(defsubst lua-get-multiline-delim-syntax (type)
+ (cond ((eq type 'string) '(15))
+ ((eq type 'comment) '(14))
+ (nil)))
+
+(defun lua-mark-char-multiline-delim (pos type)
+ "Mark character as a delimiter of Lua multiline construct
+
+If TYPE is string, mark char as string delimiter. If TYPE is comment,
+mark char as comment delimiter. Otherwise, remove the mark if any."
+ (lua-put-char-syntax-table pos (lua-get-multiline-delim-syntax type)))
+
+(defun lua-clear-multiline-delims (&optional begin end)
+ "Clears all Lua multiline construct markers in region
+
+If BEGIN is nil, start from `beginning-of-buffer'.
+If END is nil, stop at `end-of-buffer'."
+ (interactive)
+ (remove-text-properties (or begin 1) (or end (buffer-size)) '(syntax-table
()))
+ (font-lock-fontify-buffer))
+
(provide 'lua-mode)
- [nongnu] elpa/lua-mode b2860f1 062/468: lua-setup-keymap: improve readability, (continued)
- [nongnu] elpa/lua-mode b2860f1 062/468: lua-setup-keymap: improve readability, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 7935b5f 064/468: Fix previous commit, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 85d26f8 065/468: lua-mode-map: initialize as soon as lua-mode is loaded (previously waited for call to lua-mode), Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 3339da6 067/468: lua-prefix-key: auto-convert from/to character, update bindings automagically, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 5842703 068/468: Add TODO, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 8165775 069/468: Fix lua-set-prefix message, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 6b1d389 074/468: lua-calculate-unindentation: skip semicolons as well, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode bda4fbd 075/468: lua-calculate-unindentation: update docs, remove extraneous catch, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode a20b08e 078/468: lua-indent-line: remove extra variable shift-amt, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode c0d6f80 079/468: Add markdown README, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 08cff6e 081/468: Implement basic multiline-aware functionality,
Philip Kaludercic <=
- [nongnu] elpa/lua-mode dfc3b78 083/468: Preserve buffer-modified-p state when (un-)marking multiline delimiters, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 7920d17 087/468: lua-mark-all-multiline-literals: if region is active, limit to region boundaries, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 4a22b3c 100/468: Allow lua-start-process to be called interactively., Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode a3ed448 106/468: Make dist with git-archive, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 742180e 125/468: lua-automark-multiline: add lua-automark-multiline-maxsize variable to prevent long waits on big files, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 0b3df35 135/468: Fix string content indentation: it's now indented by indent-level relative to indentation of the line where string/comment literal starts (issue #6), Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 5aa6f9e 042/468: Patch from Reuben: fix long string colouring problem, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode eb5d301 055/468: Bump version., Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode d66ec8e 080/468: Remove broken multiline literal font-locking, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode d142ed1 084/468: Update TODO, Philip Kaludercic, 2021/08/05