[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/sql-indent 7af0298 3/3: Recognize "CREATE EXTENSION" st
From: |
Stefan Monnier |
Subject: |
[elpa] externals/sql-indent 7af0298 3/3: Recognize "CREATE EXTENSION" statements (#97) |
Date: |
Tue, 16 Mar 2021 09:45:06 -0400 (EDT) |
branch: externals/sql-indent
commit 7af0298513616ddc6acf54a2b77bf5d0123c0102
Author: Alex Harsanyi <AlexHarsanyi@gmail.com>
Commit: Alex Harsanyi <AlexHarsanyi@gmail.com>
Recognize "CREATE EXTENSION" statements (#97)
Do not consider an "IF" keyword, which is part of a "CREATE EXTENSION"
statement, to start a block.
... and also add tests for #95 (I forgot about those)
---
sql-indent-test.el | 13 ++++++++++++-
sql-indent.el | 2 +-
test-data/pr95-io-default.eld | 1 +
test-data/pr95.sql | 10 ++++++++++
test-data/pr97-syn.eld | 30 ++++++++++++++++++++++++++++++
test-data/pr97.sql | 15 +++++++++++++++
6 files changed, 69 insertions(+), 2 deletions(-)
diff --git a/sql-indent-test.el b/sql-indent-test.el
index 8be6df8..57929d4 100644
--- a/sql-indent-test.el
+++ b/sql-indent-test.el
@@ -457,10 +457,21 @@ information read from DATA-FILE (as generated by
"test-data/pr92b.sql"
"test-data/pr92b-syn.eld"))
-(ert-deftest sqlind-ert-pr3 ()
+(ert-deftest sqlind-ert-pr93 ()
(sqlind-ert-check-file-indentation
"test-data/pr93.sql" "test-data/pr93-io-default.eld"
(default-value 'sqlind-indentation-offsets-alist)
(default-value 'sqlind-basic-offset)))
+(ert-deftest sqlind-ert-pr95 ()
+ (sqlind-ert-check-file-indentation
+ "test-data/pr95.sql" "test-data/pr95-io-default.eld"
+ (default-value 'sqlind-indentation-offsets-alist)
+ (default-value 'sqlind-basic-offset)))
+
+(ert-deftest sqlind-ert-pr97 ()
+ (sqlind-ert-check-file-syntax
+ "test-data/pr97.sql"
+ "test-data/pr97-syn.eld"))
+
;;; sql-indent-test.el ends here
diff --git a/sql-indent.el b/sql-indent.el
index b6ddc6a..44fbb37 100644
--- a/sql-indent.el
+++ b/sql-indent.el
@@ -497,7 +497,7 @@ We try to avoid false positives, like \"end if\" or the
various
(forward-word -1)
;; we don't want to match an "end if", and things like "drop index if
;; exists..." and "create index if not exist..."
- (not (looking-at
"end\\|schema\\|table\\|view\\|index\\|trigger\\|procedure\\|function\\|package\\|body")))))
+ (not (looking-at
"end\\|schema\\|table\\|view\\|index\\|trigger\\|procedure\\|function\\|package\\|body\\|extension")))))
(defun sqlind-maybe-if-statement ()
"If (point) is on an IF statement, report its syntax."
diff --git a/test-data/pr95-io-default.eld b/test-data/pr95-io-default.eld
new file mode 100644
index 0000000..c7c0379
--- /dev/null
+++ b/test-data/pr95-io-default.eld
@@ -0,0 +1 @@
+(0 2 2 0 0 0 0 0 2 2 0)
diff --git a/test-data/pr95.sql b/test-data/pr95.sql
new file mode 100644
index 0000000..fa98be4
--- /dev/null
+++ b/test-data/pr95.sql
@@ -0,0 +1,10 @@
+CREATE TABLE IF NOT EXISTS vbox (
+ id bigint(10) unsigned NOT NULL AUTO_INCREMENT,
+ foo varchar(40) NOT NULL,
+
+
+
+
+
+ create_tm timestamp NOT NULL default CURRENT_TIMESTAMP,
+ PRIMARY KEY(id));
diff --git a/test-data/pr97-syn.eld b/test-data/pr97-syn.eld
new file mode 100644
index 0000000..82a6b08
--- /dev/null
+++ b/test-data/pr97-syn.eld
@@ -0,0 +1,30 @@
+(((comment-start . 1)
+ (toplevel . 1))
+ ((toplevel . 1))
+ ((toplevel . 1))
+ ((toplevel . 1))
+ ((comment-start . 1)
+ (toplevel . 1))
+ ((toplevel . 1))
+ ((toplevel . 1))
+ ((comment-start . 129)
+ ((create-statement extension "")
+ . 129))
+ (((syntax-error "end statement closes nothing" 240 240)
+ . 129)
+ ((create-statement extension "")
+ . 129))
+ (((syntax-error "nested create statement" 160 160)
+ . 129))
+ ((comment-start . 129)
+ ((syntax-error "nested create statement" 160 160)
+ . 129))
+ (((syntax-error "nested create statement" 160 160)
+ . 129))
+ (((syntax-error "nested create statement" 160 160)
+ . 129))
+ ((comment-start . 1)
+ (toplevel . 1))
+ ((toplevel . 1))
+ ((toplevel . 1)))
+
\ No newline at end of file
diff --git a/test-data/pr97.sql b/test-data/pr97.sql
new file mode 100644
index 0000000..93f2895
--- /dev/null
+++ b/test-data/pr97.sql
@@ -0,0 +1,15 @@
+-- -*- mode: sql; sql-product: postgres; -*-
+
+CREATE EXTENSION "uuid-ossp" WITH SCHEMA public;
+
+-- indentation is correct here
+
+CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA public
+ -- invalid syntax, but this treated as a block
+END;
+
+-- indentation is correct here
+
+CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA public;
+-- autoindents to this level
+