diff --git a/dictionaries/sql/cspell-ext.json b/dictionaries/sql/cspell-ext.json index 63249c3d894..95902210365 100644 --- a/dictionaries/sql/cspell-ext.json +++ b/dictionaries/sql/cspell-ext.json @@ -11,6 +11,16 @@ "description": "SQL dictionary for CSpell." } ], + "patterns": [ + { + "name": "sql-hex-number", + "pattern": "/0x[a-f0-9]*/gi" + }, + { + "name": "sql-unicode-string-prefix", + "pattern": "/\\bN'/g" + } + ], "dictionaries": [], "languageSettings": [ { @@ -18,6 +28,7 @@ "locale": "*", "patterns": [], "dictionaries": ["sql"], + "ignoreRegExpList": ["sql-hex-number", "sql-unicode-string-prefix"], "dictionaryDefinitions": [] } ] diff --git a/dictionaries/sql/cspell.json b/dictionaries/sql/cspell.json index 33a844e2b43..8cac0bcd0e1 100644 --- a/dictionaries/sql/cspell.json +++ b/dictionaries/sql/cspell.json @@ -1,11 +1,13 @@ { "version": "0.2", - "files": [ - "**/*.{md,txt,sql}" + "files": ["**/*.{md,txt,sql}"], + "dictionaries": [], + "overrides": [ + { + "filename": "*.txt", + "dictionaries": ["sql"] + } ], - "dictionaries": [ - ], - "import": [ - "./cspell-ext.json" - ] + "enableFiletypes": ["sql"], + "import": ["./cspell-ext.json"] } diff --git a/dictionaries/sql/package.json b/dictionaries/sql/package.json index e98c4c577a8..41be92a93c9 100644 --- a/dictionaries/sql/package.json +++ b/dictionaries/sql/package.json @@ -11,7 +11,7 @@ "./cspell-ext.json": "./cspell-ext.json" }, "scripts": { - "build": "cross-env NODE_OPTIONS=--max_old_space_size=8192 cspell-tools-cli compile \"src/sql.txt\" -o .", + "build": "cat source-files.txt | xargs cspell-tools-cli compile -M sql -o .", "test": "yarn test-dict && yarn test-samples", "test-dict": "head -n 1000 \"src/sql.txt\" | cspell -v -c ./cspell-ext.json \"--local=*\" \"--languageId=sql\" stdin", "test-samples": "cspell \"samples/**\"", diff --git a/dictionaries/sql/samples/notes.sql b/dictionaries/sql/samples/notes.sql new file mode 100644 index 00000000000..e05dfa25b28 --- /dev/null +++ b/dictionaries/sql/samples/notes.sql @@ -0,0 +1,18 @@ +-- This is a collection of SQL Constants and terms + +-- Character string constants +SELECT 'Cincinnati' +SELECT 'O''Brien' +SELECT 'Process X is 50% complete.' +SELECT 'The level for job_id: %d should be between %d and %d.' +SELECT "O'Brien" +SELECT N'time is running' + +-- Binary constants +SELECT 0xAE +SELECT 0x12Ef +SELECT 0x69048AEFDD010E +SELECT 0xBADC0FFEED +SELECT 0x -- (empty binary string) + +-- cspell:ignore Brien diff --git a/dictionaries/sql/samples/sample.sql b/dictionaries/sql/samples/sample.sql new file mode 100644 index 00000000000..2ca005c1789 --- /dev/null +++ b/dictionaries/sql/samples/sample.sql @@ -0,0 +1,26 @@ +/************************************************************************************************************************************ +* Generates the code to update the collation for all affected columns in the table * +************************************************************************************************************************************/ +INSERT INTO #tempscriptstore (ScriptType, + script) +SELECT 'AlterCollation', + N'ALTER TABLE ' + QUOTENAME(@SchemaName) + N'.' + QUOTENAME(@TableName) + N' ALTER COLUMN ' + + QUOTENAME(c.name) + ' ' + + CASE WHEN ty.name = N'ntext' + THEN ty.name + N' COLLATE ' + @DatabaseCollation + ' ' + ELSE ty.name + N'(' + CASE WHEN c.max_length = -1 + THEN N'MAX' + ELSE CASE WHEN ty.name = N'nvarchar' + THEN CAST(c.max_length / 2 AS nvarchar(20)) + ELSE CAST(c.max_length AS nvarchar(20)) + END + END + N') COLLATE ' + @DatabaseCollation + END + CASE WHEN c.is_nullable = 1 THEN N' NULL;' ELSE N' NOT NULL;' END +FROM sys.columns AS c +INNER JOIN sys.types AS ty + ON ty.system_type_id = c.system_type_id + AND ty.name <> N'sysname' +WHERE c.object_id = @object_id +AND c.collation_name <> @DatabaseCollation; + +-- cspell:ignore tempscriptstore diff --git a/dictionaries/sql/source-files.txt b/dictionaries/sql/source-files.txt new file mode 100644 index 00000000000..103264cfbad --- /dev/null +++ b/dictionaries/sql/source-files.txt @@ -0,0 +1,2 @@ +src/sql.txt +src/tsql.txt diff --git a/dictionaries/sql/src/tsql.txt b/dictionaries/sql/src/tsql.txt new file mode 100644 index 00000000000..97a4684024c --- /dev/null +++ b/dictionaries/sql/src/tsql.txt @@ -0,0 +1,537 @@ + +ABSOLUTE +ACTION +ADA +ADD +ADMIN +AFTER +AGGREGATE +ALIAS +ALL +ALLOCATE +ALTER +AND +ANY +ARE +ARRAY +AS +ASC +ASENSITIVE +ASSERTION +ASYMMETRIC +AT +ATOMIC +AUTHORIZATION +AVG +BACKUP +BEFORE +BEGIN +BETWEEN +bigint +binary +BINARY +bit +BIT +BIT_LENGTH +BLOB +BOOLEAN +BOTH +BREADTH +BREAK +BROWSE +BULK +BY +CALL +CALLED +CARDINALITY +CASCADE +CASCADED +CASE +CAST +CATALOG +char +CHAR +CHAR_LENGTH +CHARACTER +CHARACTER_LENGTH +CHECK +CHECKPOINT +CLASS +CLOB +CLOSE +CLUSTERED +COALESCE +COLLATE +COLLATION +COLLECT +COLUMN +COMMIT +COMPLETION +COMPUTE +CONDITION +CONNECT +CONNECTION +CONSTRAINT +CONSTRAINTS +CONSTRUCTOR +CONTAINS +CONTAINSTABLE +CONTINUE +CONVERT +CORR +CORRESPONDING +COUNT +COVAR_POP +COVAR_SAMP +CREATE +CROSS +CUBE +CUME_DIST +CURRENT +CURRENT_CATALOG +CURRENT_DATE +CURRENT_DEFAULT_TRANSFORM_GROUP +CURRENT_PATH +CURRENT_ROLE +CURRENT_SCHEMA +CURRENT_TIME +CURRENT_TIMESTAMP +CURRENT_TRANSFORM_GROUP_FOR_TYPE +CURRENT_USER +cursor +CURSOR +CURSOR_ROWS +CURSOR_STATUS +CYCLE +DATA +DATABASE +date +DATE +DATEFIRST +datetime +datetime2 +datetimeoffset +DAY +DBCC +DBTS +DEALLOCATE +DEC +decimal +DECIMAL +DECLARE +DEFAULT +DEFERRABLE +DEFERRED +DELETE +DENY +DEPTH +DEREF +DESC +DESCRIBE +DESCRIPTOR +DESTROY +DESTRUCTOR +DETERMINISTIC +DIAGNOSTICS +DICTIONARY +DISCONNECT +DISK +DISTINCT +DISTRIBUTED +DOMAIN +DOUBLE +DROP +DUMP +DYNAMIC +EACH +ELEMENT +ELSE +END +END-EXEC +EQUALS +ERRLVL +ESCAPE +EVERY +EXCEPT +EXCEPTION +EXEC +EXECUTE +EXISTS +EXIT +EXTERNAL +EXTRACT +FALSE +FETCH +FETCH_STATUS +FILE +FILLFACTOR +FILTER +FIRST +float +FLOAT +FOR +FOREIGN +FORTRAN +FOUND +FREE +FREETEXT +FREETEXTTABLE +FROM +FULL +FULLTEXTTABLE +FUNCTION +FUSION +GENERAL +GET +GLOBAL +GO +GOTO +GRANT +GROUP +GROUPING +HAVING +hierarchyid +HOLD +HOLDLOCK +HOST +HOUR +IDENTITY +IDENTITY_INSERT +IDENTITYCOL +IF +IGNORE +image +IMMEDIATE +IN +INCLUDE +INDEX +INDICATOR +INITIALIZE +INITIALLY +INNER +INOUT +INPUT +INSENSITIVE +INSERT +int +INT +INTEGER +INTERSECT +INTERSECTION +INTERVAL +INTO +IS +ISOLATION +ITERATE +JOIN +KEY +KILL +LANGID +LANGUAGE +LARGE +LAST +LATERAL +LEADING +LEFT +LESS +LEVEL +LIKE +LIKE_REGEX +LIMIT +LINENO +LN +LOAD +LOCAL +LOCALTIME +LOCALTIMESTAMP +LOCATOR +LOCK_TIMEOUT +LOWER +MAP +MATCH +MAX +MAX_CONNECTIONS +MAX_PRECISION +MEMBER +MERGE +METHOD +MIN +MINUTE +MOD +MODIFIES +MODIFY +MODULE +money +MONTH +MULTISET +NAMES +NATIONAL +NATURAL +nchar +NCLOB +NESTLEVEL +NEW +NEXT +NO +NOCHECK +NONCLUSTERED +NONE +NORMALIZE +NOT +ntext +NULL +NULLIF +numeric +NUMERIC +nvarchar +NVARCHAR +OBJECT +OCCURRENCES_REGEX +OCTET_LENGTH +OF +OFF +OFFSETS +OLD +ON +ONLY +OPEN +OPENDATASOURCE +OPENQUERY +OPENROWSET +OPENXML +OPERATION +OPTION +OPTIONS +OR +ORDER +ORDINALITY +OUT +OUTER +OUTPUT +OVER +OVERLAPS +OVERLAY +PAD +PARAMETER +PARAMETERS +PARSE +PARTIAL +PARTITION +PASCAL +PATH +PERCENT +PERCENT_RANK +PERCENTILE_CONT +PERCENTILE_DISC +PIVOT +PLAN +POSITION +POSITION_REGEX +POSTFIX +PRECISION +PREFIX +PREORDER +PREPARE +PRESERVE +PRIMARY +PRINT +PRIOR +PRIVILEGES +PROC +PROCEDURE +PUBLIC +RAISERROR +RANGE +READ +READS +READTEXT +real +REAL +RECONFIGURE +RECURSIVE +REF +REFERENCES +REFERENCING +REGR_AVGX +REGR_AVGY +REGR_COUNT +REGR_INTERCEPT +REGR_R2 +REGR_SLOPE +REGR_SXX +REGR_SXY +REGR_SYY +RELATIVE +RELEASE +REMSERVER +REPLICATION +RESTORE +RESTRICT +RESULT +RETURN +RETURNS +REVERT +REVOKE +RIGHT +ROLE +ROLLBACK +ROLLUP +ROUTINE +ROW +ROWCOUNT +ROWGUIDCOL +ROWS +rowversion +RULE +SAVE +SAVEPOINT +SCHEMA +SCOPE +SCROLL +SEARCH +SECOND +SECTION +SECURITYAUDIT +SELECT +SEMANTICKEYPHRASETABLE +SEMANTICSIMILARITYDETAILSTABLE +SEMANTICSIMILARITYTABLE +SENSITIVE +SEQUENCE +SERVERNAME +SERVICENAME +SESSION +SESSION_USER +SET +SETS +SETUSER +SHUTDOWN +SIMILAR +SIZE +smalldatetime +smallint +SMALLINT +smallmoney +SOME +SPACE +SPECIFIC +SPECIFICTYPE +SPID +SQL +sql_variant +SQLCA +SQLCODE +SQLERROR +SQLEXCEPTION +SQLSTATE +SQLWARNING +START +STATE +STATEMENT +STATIC +STATISTICS +STDDEV_POP +STDDEV_SAMP +STRUCTURE +SUBMULTISET +SUBSTRING +SUBSTRING_REGEX +SUM +SYMMETRIC +sysname +SYSTEM +SYSTEM_USER +table +TABLE +TABLESAMPLE +TEMPORARY +TERMINATE +text +TEXTSIZE +THAN +THEN +time +TIME +TIMESTAMP +TIMEZONE_HOUR +TIMEZONE_MINUTE +tinyint +TO +TOP +TRAILING +TRAN +TRANSACTION +TRANSLATE +TRANSLATE_REGEX +TRANSLATION +TREAT +TRIGGER +TRIM +TRUE +TRUNCATE +TRY_CAST +TRY_CONVERT +TRY_PARSE +TSEQUAL +UESCAPE +UNDER +UNION +UNIQUE +uniqueidentifier +UNKNOWN +UNNEST +UNPIVOT +UPDATE +UPDATETEXT +UPPER +USAGE +USE +USER +USING +VALUE +VALUES +VAR_POP +VAR_SAMP +varbinary +varchar +VARCHAR +VARIABLE +VARYING +VERSION +VIEW +WAITFOR +WHEN +WHENEVER +WHERE +WHILE +WIDTH_BUCKET +WINDOW +WITH +WITHIN +WITHIN GROUP +WITHOUT +WORK +WRITE +WRITETEXT +xml +XMLAGG +XMLATTRIBUTES +XMLBINARY +XMLCAST +XMLCOMMENT +XMLCONCAT +XMLDOCUMENT +XMLELEMENT +XMLEXISTS +XMLFOREST +XMLITERATE +XMLNAMESPACES +XMLPARSE +XMLPI +XMLQUERY +XMLSERIALIZE +XMLTABLE +XMLTEXT +XMLVALIDATE +YEAR +ZONE