summaryrefslogtreecommitdiff
path: root/lisp/progmodes/sql.el
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2020-08-10 13:24:19 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2020-08-10 15:18:19 +0200
commit70825a4d313fddd6f80a1840d775384e848daf9f (patch)
treec4d8a3ee39d64713face4c0bfa355812c509465a /lisp/progmodes/sql.el
parentc669afcd1cf3990cadbff7319c2e30b72996cdda (diff)
downloademacs-70825a4d313fddd6f80a1840d775384e848daf9f.tar.gz
Fix problem with /- incorrectly starting a comment in SQL mode
* lisp/progmodes/sql.el (sql-mode): Move all the syntax setup stuff here (bug#35646). Add handling of -* and /- from Kristian Hole <kristian@hole.priv.no>.
Diffstat (limited to 'lisp/progmodes/sql.el')
-rw-r--r--lisp/progmodes/sql.el30
1 files changed, 11 insertions, 19 deletions
diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el
index 7c4feb38c3a..e554b2b8b0b 100644
--- a/lisp/progmodes/sql.el
+++ b/lisp/progmodes/sql.el
@@ -1508,22 +1508,6 @@ Based on `comint-mode-map'.")
table)
"Syntax table used in `sql-mode' and `sql-interactive-mode'.")
-;;; Syntax Properties
-
-;; `sql--syntax-propertize-escaped-apostrophe', as follows, was
-;; (analysed and) adapted from `pascal--syntax-propertize' in
-;; pascal.el because basic syntax parsing cannot handle the SQL ''
-;; construct within strings.
-
-(defconst sql--syntax-propertize-escaped-apostrophe
- (syntax-propertize-rules
- ("''"
- (0
- (if (save-excursion (nth 3 (syntax-ppss (match-beginning 0))))
- (string-to-syntax ".")
- (forward-char -1)
- nil)))))
-
;; Font lock support
(defvar sql-mode-font-lock-object-name
@@ -4226,10 +4210,18 @@ must tell Emacs. Here's how to do that in your init file:
(setq-local abbrev-all-caps 1)
;; Contains the name of database objects
(set (make-local-variable 'sql-contains-names) t)
- ;; Activate punctuation syntax table property for
- ;; escaped apostrophes within strings:
(setq-local syntax-propertize-function
- sql--syntax-propertize-escaped-apostrophe)
+ (syntax-propertize-rules
+ ;; Handle escaped apostrophes within strings.
+ ("''"
+ (0
+ (if (save-excursion (nth 3 (syntax-ppss (match-beginning 0))))
+ (string-to-syntax ".")
+ (forward-char -1)
+ nil)))
+ ;; Propertize rules to not have /- and -* start comments.
+ ("\\(/-\\)" (1 "."))
+ ("\\(-\\*\\)" (1 "."))))
;; Set syntax and font-face highlighting
;; Catch changes to sql-product and highlight accordingly
(sql-set-product (or sql-product 'ansi)) ; Fixes bug#13591