diff options
author | Lars Ingebrigtsen <larsi@gnus.org> | 2020-08-10 13:24:19 +0200 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2020-08-10 15:18:19 +0200 |
commit | 70825a4d313fddd6f80a1840d775384e848daf9f (patch) | |
tree | c4d8a3ee39d64713face4c0bfa355812c509465a /lisp/progmodes/sql.el | |
parent | c669afcd1cf3990cadbff7319c2e30b72996cdda (diff) | |
download | emacs-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.el | 30 |
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 |