[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/lua-mode a52e6b1 070/468: lua-left-shift-regexp: optimize
From: |
Philip Kaludercic |
Subject: |
[nongnu] elpa/lua-mode a52e6b1 070/468: lua-left-shift-regexp: optimize and greatly reduce size |
Date: |
Thu, 5 Aug 2021 04:58:10 -0400 (EDT) |
branch: elpa/lua-mode
commit a52e6b1cb70b0ece1d1b7302aff189e9587c061d
Author: immerrr <immerrr@gmail.com>
Commit: immerrr <immerrr@gmail.com>
lua-left-shift-regexp: optimize and greatly reduce size
---
lua-mode.el | 40 +++++-----------------------------------
1 file changed, 5 insertions(+), 35 deletions(-)
diff --git a/lua-mode.el b/lua-mode.el
index 0de813b..834f737 100644
--- a/lua-mode.el
+++ b/lua-mode.el
@@ -784,38 +784,10 @@ one."
(cdr indentation-info)
(if (lua-is-continuing-statement-p) (- lua-indent-level) 0)))))
-(defconst lua-left-shift-regexp-1
- (concat "\\("
- "\\(\\_<" (regexp-opt '("else" "elseif" "until") t)
- "\\_>\\)\\($\\|\\s +\\)"
- "\\)"))
-
-(defconst lua-left-shift-regexp-2
- (concat "\\(\\_<"
- (regexp-opt '("end") t)
- "\\_>\\)"))
-
-(defconst lua-left-shift-regexp
- ;; "else", "elseif", "until" followed by whitespace, or "end"/closing
- ;; brackets followed by
- ;; whitespace, punctuation, or closing parentheses
- (concat lua-left-shift-regexp-1
- "\\|\\(\\("
- lua-left-shift-regexp-2
- "\\|\\("
- (regexp-opt '("]" "}" ")"))
- "\\)\\)\\($\\|\\(\\s \\|\\s.\\)*\\)"
- "\\)"))
-
-(defconst lua-left-shift-pos-1
- 2)
-
-(defconst lua-left-shift-pos-2
- (+ 3 (regexp-opt-depth lua-left-shift-regexp-1)))
-
-(defconst lua-left-shift-pos-3
- (+ lua-left-shift-pos-2
- (regexp-opt-depth lua-left-shift-regexp-2)))
+(defconst lua-unindentation-regexp
+ (concat "\\s *" ;; else/elseif/until/end/"]"/"}"/")"
+ "\\(?1:\\_<" (regexp-opt '("else" "elseif" "until" "end")) "\\_>"
+ "\\|" (regexp-opt '("]" "}" ")")) "\\)"))
(defun lua-calculate-indentation-left-shift (&optional parse-start)
"Return amount, by which this line should be shifted left.
@@ -833,9 +805,7 @@ to the left by the amount specified in lua-indent-level."
(catch 'stop
(while (and (looking-at lua-left-shift-regexp)
(not (lua-comment-or-string-p)))
- (let ((last-token (or (match-string lua-left-shift-pos-1)
- (match-string lua-left-shift-pos-2)
- (match-string lua-left-shift-pos-3))))
+ (let ((last-token (or (match-string 1) (match-string 2))))
(if (not block-token) (setq block-token last-token))
(if (not (string-equal block-token last-token)) (throw 'stop nil))
(setq indentation-modifier (+ indentation-modifier
- [nongnu] elpa/lua-mode 2786823 043/468: Add example code to trigger lua-mode for hash-bang lines containing, (continued)
- [nongnu] elpa/lua-mode 2786823 043/468: Add example code to trigger lua-mode for hash-bang lines containing, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 4f4d3de 047/468: Add Makefile with dist and release targets, and ignore release zips., Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 16861a3 032/468: Fix bug #620 again: Wrong identation with tables, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode e10183d 037/468: handle font-lock-variable-name-face (Reuben Thomas), Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode ab2d44c 038/468: Multiple changes by Reuben Thomas:, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode e057e22 044/468: Rename install.rst to README to help github and users., Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode b20ca34 051/468: Add note to send update to ELPA., Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode afdf074 053/468: Make defcustom declaration formats consistent., Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode ec1a0f2 063/468: Remove extraneous variable lua-indent-whitespace, use back-to-indentation instead, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 47ac4f3 056/468: Don't have the echo command printed itself., Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode a52e6b1 070/468: lua-left-shift-regexp: optimize and greatly reduce size,
Philip Kaludercic <=
- [nongnu] elpa/lua-mode 5fa9b81 077/468: lua-indent-line: don't change the indent if inside multiline string literal, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode aedf8a5 018/468: Documentation in restructured text, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 85fda70 039/468: Add patch from Olivier Andrieu for rudimentary long bracket support, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode cf9de96 031/468: Reverted invalid changes for Bug #620, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 04fb034 009/468: lua-jump-to-traceback: Issue warnings about truncated traceback, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 0ae7e3e 016/468: Handle function names in assignments, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 89dbb80 020/468: imenu fix for local functions, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode bdf4bab 025/468: support for hideshow, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode d7c462a 030/468: Fix bug #620: Wrong identation with tables, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode eebb50c 035/468: Fix #1913: Indenting: "(" like "{", Philip Kaludercic, 2021/08/05