corrade-nucleus-nucleons – Blame information for rev 20
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
20 | office | 1 | ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { |
2 | "use strict"; |
||
3 | |||
4 | var oop = require("../lib/oop"); |
||
5 | var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; |
||
6 | |||
7 | var DocCommentHighlightRules = function() { |
||
8 | this.$rules = { |
||
9 | "start" : [ { |
||
10 | token : "comment.doc.tag", |
||
11 | regex : "@[\\w\\d_]+" // TODO: fix email addresses |
||
12 | }, |
||
13 | DocCommentHighlightRules.getTagRule(), |
||
14 | { |
||
15 | defaultToken : "comment.doc", |
||
16 | caseInsensitive: true |
||
17 | }] |
||
18 | }; |
||
19 | }; |
||
20 | |||
21 | oop.inherits(DocCommentHighlightRules, TextHighlightRules); |
||
22 | |||
23 | DocCommentHighlightRules.getTagRule = function(start) { |
||
24 | return { |
||
25 | token : "comment.doc.tag.storage.type", |
||
26 | regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" |
||
27 | }; |
||
28 | } |
||
29 | |||
30 | DocCommentHighlightRules.getStartRule = function(start) { |
||
31 | return { |
||
32 | token : "comment.doc", // doc comment |
||
33 | regex : "\\/\\*(?=\\*)", |
||
34 | next : start |
||
35 | }; |
||
36 | }; |
||
37 | |||
38 | DocCommentHighlightRules.getEndRule = function (start) { |
||
39 | return { |
||
40 | token : "comment.doc", // closing comment |
||
41 | regex : "\\*\\/", |
||
42 | next : start |
||
43 | }; |
||
44 | }; |
||
45 | |||
46 | |||
47 | exports.DocCommentHighlightRules = DocCommentHighlightRules; |
||
48 | |||
49 | }); |
||
50 | |||
51 | ace.define("ace/mode/sqlserver_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { |
||
52 | "use strict"; |
||
53 | |||
54 | var oop = require("../lib/oop"); |
||
55 | var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; |
||
56 | var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; |
||
57 | |||
58 | var SqlServerHighlightRules = function() { |
||
59 | var logicalOperators = "ALL|AND|ANY|BETWEEN|EXISTS|IN|LIKE|NOT|OR|SOME"; |
||
60 | logicalOperators += "|NULL|IS|APPLY|INNER|OUTER|LEFT|RIGHT|JOIN|CROSS"; //SSMS colors these gray too |
||
61 | |||
62 | |||
63 | var builtinFunctions = ( |
||
64 | "OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|" + |
||
65 | "AVG|CHECKSUM_AGG|COUNT|COUNT_BIG|GROUPING|GROUPING_ID|MAX|MIN|STDEV|STDEVP|SUM|VAR|VARP|" + |
||
66 | "DENSE_RANK|NTILE|RANK|ROW_NUMBER" + |
||
67 | "@@DATEFIRST|@@DBTS|@@LANGID|@@LANGUAGE|@@LOCK_TIMEOUT|@@MAX_CONNECTIONS|@@MAX_PRECISION|@@NESTLEVEL|@@OPTIONS|@@REMSERVER|@@SERVERNAME|@@SERVICENAME|@@SPID|@@TEXTSIZE|@@VERSION|" + |
||
68 | "CAST|CONVERT|PARSE|TRY_CAST|TRY_CONVERT|TRY_PARSE" + |
||
69 | "@@CURSOR_ROWS|@@FETCH_STATUS|CURSOR_STATUS|" + |
||
70 | "@@DATEFIRST|@@LANGUAGE|CURRENT_TIMESTAMP|DATEADD|DATEDIFF|DATEFROMPARTS|DATENAME|DATEPART|DATETIME2FROMPARTS|DATETIMEFROMPARTS|DATETIMEOFFSETFROMPARTS|DAY|EOMONTH|GETDATE|GETUTCDATE|ISDATE|MONTH|SET DATEFIRST|SET DATEFORMAT|SET LANGUAGE|SMALLDATETIMEFROMPARTS|SP_HELPLANGUAGE|SWITCHOFFSET|SYSDATETIME|SYSDATETIMEOFFSET|SYSUTCDATETIME|TIMEFROMPARTS|TODATETIMEOFFSET|YEAR|" + |
||
71 | "CHOOSE|IIF|" + |
||
72 | "ABS|ACOS|ASIN|ATAN|ATN2|CEILING|COS|COT|DEGREES|EXP|FLOOR|LOG|LOG10|PI|POWER|RADIANS|RAND|ROUND|SIGN|SIN|SQRT|SQUARE|TAN|" + |
||
73 | "@@PROCID|APPLOCK_MODE|APPLOCK_TEST|APP_NAME|ASSEMBLYPROPERTY|COLUMNPROPERTY|COL_LENGTH|COL_NAME|DATABASEPROPERTYEX|DATABASE_PRINCIPAL_ID|DB_ID|DB_NAME|FILEGROUPPROPERTY|FILEGROUP_ID|FILEGROUP_NAME|FILEPROPERTY|FILE_ID|FILE_IDEX|FILE_NAME|FULLTEXTCATALOGPROPERTY|FULLTEXTSERVICEPROPERTY|INDEXKEY_PROPERTY|INDEXPROPERTY|INDEX_COL|OBJECTPROPERTY|OBJECTPROPERTYEX|OBJECT_DEFINITION|OBJECT_ID|OBJECT_NAME|OBJECT_SCHEMA_NAME|ORIGINAL_DB_NAME|PARSENAME|SCHEMA_ID|SCHEMA_NAME|SCOPE_IDENTITY|SERVERPROPERTY|STATS_DATE|TYPEPROPERTY|TYPE_ID|TYPE_NAME|" + |
||
74 | "CERTENCODED|CERTPRIVATEKEY|CURRENT_USER|DATABASE_PRINCIPAL_ID|HAS_PERMS_BY_NAME|IS_MEMBER|IS_ROLEMEMBER|IS_SRVROLEMEMBER|ORIGINAL_LOGIN|PERMISSIONS|PWDCOMPARE|PWDENCRYPT|SCHEMA_ID|SCHEMA_NAME|SESSION_USER|SUSER_ID|SUSER_NAME|SUSER_SID|SUSER_SNAME|SYS.FN_BUILTIN_PERMISSIONS|SYS.FN_GET_AUDIT_FILE|SYS.FN_MY_PERMISSIONS|SYSTEM_USER|USER_ID|USER_NAME|" + |
||
75 | "ASCII|CHAR|CHARINDEX|CONCAT|DIFFERENCE|FORMAT|LEN|LOWER|LTRIM|NCHAR|PATINDEX|QUOTENAME|REPLACE|REPLICATE|REVERSE|RTRIM|SOUNDEX|SPACE|STR|STUFF|SUBSTRING|UNICODE|UPPER|" + |
||
76 | "$PARTITION|@@ERROR|@@IDENTITY|@@PACK_RECEIVED|@@ROWCOUNT|@@TRANCOUNT|BINARY_CHECKSUM|CHECKSUM|CONNECTIONPROPERTY|CONTEXT_INFO|CURRENT_REQUEST_ID|ERROR_LINE|ERROR_MESSAGE|ERROR_NUMBER|ERROR_PROCEDURE|ERROR_SEVERITY|ERROR_STATE|FORMATMESSAGE|GETANSINULL|GET_FILESTREAM_TRANSACTION_CONTEXT|HOST_ID|HOST_NAME|ISNULL|ISNUMERIC|MIN_ACTIVE_ROWVERSION|NEWID|NEWSEQUENTIALID|ROWCOUNT_BIG|XACT_STATE|" + |
||
77 | "@@CONNECTIONS|@@CPU_BUSY|@@IDLE|@@IO_BUSY|@@PACKET_ERRORS|@@PACK_RECEIVED|@@PACK_SENT|@@TIMETICKS|@@TOTAL_ERRORS|@@TOTAL_READ|@@TOTAL_WRITE|FN_VIRTUALFILESTATS|" + |
||
78 | "PATINDEX|TEXTPTR|TEXTVALID|" + |
||
79 | "COALESCE|NULLIF" |
||
80 | ); |
||
81 | var dataTypes = ("BIGINT|BINARY|BIT|CHAR|CURSOR|DATE|DATETIME|DATETIME2|DATETIMEOFFSET|DECIMAL|FLOAT|HIERARCHYID|IMAGE|INTEGER|INT|MONEY|NCHAR|NTEXT|NUMERIC|NVARCHAR|REAL|SMALLDATETIME|SMALLINT|SMALLMONEY|SQL_VARIANT|TABLE|TEXT|TIME|TIMESTAMP|TINYINT|UNIQUEIDENTIFIER|VARBINARY|VARCHAR|XML"); |
||
82 | var builtInStoredProcedures = "sp_addextendedproc|sp_addextendedproperty|sp_addmessage|sp_addtype|sp_addumpdevice|sp_add_data_file_recover_suspect_db|sp_add_log_file_recover_suspect_db|sp_altermessage|sp_attach_db|sp_attach_single_file_db|sp_autostats|sp_bindefault|sp_bindrule|sp_bindsession|sp_certify_removable|sp_clean_db_file_free_space|sp_clean_db_free_space|sp_configure|sp_control_plan_guide|sp_createstats|sp_create_plan_guide|sp_create_plan_guide_from_handle|sp_create_removable|sp_cycle_errorlog|sp_datatype_info|sp_dbcmptlevel|sp_dbmmonitoraddmonitoring|sp_dbmmonitorchangealert|sp_dbmmonitorchangemonitoring|sp_dbmmonitordropalert|sp_dbmmonitordropmonitoring|sp_dbmmonitorhelpalert|sp_dbmmonitorhelpmonitoring|sp_dbmmonitorresults|sp_db_increased_partitions|sp_delete_backuphistory|sp_depends|sp_describe_first_result_set|sp_describe_undeclared_parameters|sp_detach_db|sp_dropdevice|sp_dropextendedproc|sp_dropextendedproperty|sp_dropmessage|sp_droptype|sp_execute|sp_executesql|sp_getapplock|sp_getbindtoken|sp_help|sp_helpconstraint|sp_helpdb|sp_helpdevice|sp_helpextendedproc|sp_helpfile|sp_helpfilegroup|sp_helpindex|sp_helplanguage|sp_helpserver|sp_helpsort|sp_helpstats|sp_helptext|sp_helptrigger|sp_indexoption|sp_invalidate_textptr|sp_lock|sp_monitor|sp_prepare|sp_prepexec|sp_prepexecrpc|sp_procoption|sp_recompile|sp_refreshview|sp_releaseapplock|sp_rename|sp_renamedb|sp_resetstatus|sp_sequence_get_range|sp_serveroption|sp_setnetname|sp_settriggerorder|sp_spaceused|sp_tableoption|sp_unbindefault|sp_unbindrule|sp_unprepare|sp_updateextendedproperty|sp_updatestats|sp_validname|sp_who|sys.sp_merge_xtp_checkpoint_files|sys.sp_xtp_bind_db_resource_pool|sys.sp_xtp_checkpoint_force_garbage_collection|sys.sp_xtp_control_proc_exec_stats|sys.sp_xtp_control_query_exec_stats|sys.sp_xtp_unbind_db_resource_pool"; |
||
83 | var keywords = "ABSOLUTE|ACTION|ADA|ADD|ADMIN|AFTER|AGGREGATE|ALIAS|ALL|ALLOCATE|ALTER|AND|ANY|ARE|ARRAY|AS|ASC|ASENSITIVE|ASSERTION|ASYMMETRIC|AT|ATOMIC|AUTHORIZATION|BACKUP|BEFORE|BEGIN|BETWEEN|BIT_LENGTH|BLOB|BOOLEAN|BOTH|BREADTH|BREAK|BROWSE|BULK|BY|CALL|CALLED|CARDINALITY|CASCADE|CASCADED|CASE|CATALOG|CHARACTER|CHARACTER_LENGTH|CHAR_LENGTH|CHECK|CHECKPOINT|CLASS|CLOB|CLOSE|CLUSTERED|COALESCE|COLLATE|COLLATION|COLLECT|COLUMN|COMMIT|COMPLETION|COMPUTE|CONDITION|CONNECT|CONNECTION|CONSTRAINT|CONSTRAINTS|CONSTRUCTOR|CONTAINS|CONTAINSTABLE|CONTINUE|CORR|CORRESPONDING|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_TRANSFORM_GROUP_FOR_TYPE|CYCLE|DATA|DATABASE|DBCC|DEALLOCATE|DEC|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|FETCH|FILE|FILLFACTOR|FILTER|FIRST|FOR|FOREIGN|FORTRAN|FOUND|FREE|FREETEXT|FREETEXTTABLE|FROM|FULL|FULLTEXTTABLE|FUNCTION|FUSION|GENERAL|GET|GLOBAL|GO|GOTO|GRANT|GROUP|HAVING|HOLD|HOLDLOCK|HOST|HOUR|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IGNORE|IMMEDIATE|IN|INCLUDE|INDEX|INDICATOR|INITIALIZE|INITIALLY|INNER|INOUT|INPUT|INSENSITIVE|INSERT|INTEGER|INTERSECT|INTERSECTION|INTERVAL|INTO|IS|ISOLATION|ITERATE|JOIN|KEY|KILL|LANGUAGE|LARGE|LAST|LATERAL|LEADING|LESS|LEVEL|LIKE|LIKE_REGEX|LIMIT|LINENO|LN|LOAD|LOCAL|LOCALTIME|LOCALTIMESTAMP|LOCATOR|MAP|MATCH|MEMBER|MERGE|METHOD|MINUTE|MOD|MODIFIES|MODIFY|MODULE|MULTISET|NAMES|NATIONAL|NATURAL|NCLOB|NEW|NEXT|NO|NOCHECK|NONCLUSTERED|NONE|NORMALIZE|NOT|NULL|NULLIF|OBJECT|OCCURRENCES_REGEX|OCTET_LENGTH|OF|OFF|OFFSETS|OLD|ON|ONLY|OPEN|OPERATION|OPTION|OR|ORDER|ORDINALITY|OUT|OUTER|OUTPUT|OVER|OVERLAPS|OVERLAY|PAD|PARAMETER|PARAMETERS|PARTIAL|PARTITION|PASCAL|PATH|PERCENT|PERCENTILE_CONT|PERCENTILE_DISC|PERCENT_RANK|PIVOT|PLAN|POSITION|POSITION_REGEX|POSTFIX|PRECISION|PREFIX|PREORDER|PREPARE|PRESERVE|PRIMARY|PRINT|PRIOR|PRIVILEGES|PROC|PROCEDURE|PUBLIC|RAISERROR|RANGE|READ|READS|READTEXT|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|REPLICATION|RESTORE|RESTRICT|RESULT|RETURN|RETURNS|REVERT|REVOKE|ROLE|ROLLBACK|ROLLUP|ROUTINE|ROW|ROWCOUNT|ROWGUIDCOL|ROWS|RULE|SAVE|SAVEPOINT|SCHEMA|SCOPE|SCROLL|SEARCH|SECOND|SECTION|SECURITYAUDIT|SELECT|SEMANTICKEYPHRASETABLE|SEMANTICSIMILARITYDETAILSTABLE|SEMANTICSIMILARITYTABLE|SENSITIVE|SEQUENCE|SESSION|SET|SETS|SETUSER|SHUTDOWN|SIMILAR|SIZE|SOME|SPECIFIC|SPECIFICTYPE|SQL|SQLCA|SQLCODE|SQLERROR|SQLEXCEPTION|SQLSTATE|SQLWARNING|START|STATE|STATEMENT|STATIC|STATISTICS|STDDEV_POP|STDDEV_SAMP|STRUCTURE|SUBMULTISET|SUBSTRING_REGEX|SYMMETRIC|SYSTEM|TABLESAMPLE|TEMPORARY|TERMINATE|TEXTSIZE|THAN|THEN|TIMEZONE_HOUR|TIMEZONE_MINUTE|TO|TOP|TRAILING|TRAN|TRANSACTION|TRANSLATE|TRANSLATE_REGEX|TRANSLATION|TREAT|TRIGGER|TRIM|TRUNCATE|TSEQUAL|UESCAPE|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNPIVOT|UPDATE|UPDATETEXT|USAGE|USE|USER|USING|VALUE|VALUES|VARIABLE|VARYING|VAR_POP|VAR_SAMP|VIEW|WAITFOR|WHEN|WHENEVER|WHERE|WHILE|WIDTH_BUCKET|WINDOW|WITH|WITHIN|WITHIN GROUP|WITHOUT|WORK|WRITE|WRITETEXT|XMLAGG|XMLATTRIBUTES|XMLBINARY|XMLCAST|XMLCOMMENT|XMLCONCAT|XMLDOCUMENT|XMLELEMENT|XMLEXISTS|XMLFOREST|XMLITERATE|XMLNAMESPACES|XMLPARSE|XMLPI|XMLQUERY|XMLSERIALIZE|XMLTABLE|XMLTEXT|XMLVALIDATE|ZONE"; |
||
84 | keywords += "|KEEPIDENTITY|KEEPDEFAULTS|IGNORE_CONSTRAINTS|IGNORE_TRIGGERS|XLOCK|FORCESCAN|FORCESEEK|HOLDLOCK|NOLOCK|NOWAIT|PAGLOCK|READCOMMITTED|READCOMMITTEDLOCK|READPAST|READUNCOMMITTED|REPEATABLEREAD|ROWLOCK|SERIALIZABLE|SNAPSHOT|SPATIAL_WINDOW_MAX_CELLS|TABLOCK|TABLOCKX|UPDLOCK|XLOCK|IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX|EXPAND|VIEWS|FAST|FORCE|KEEP|KEEPFIXED|MAXDOP|MAXRECURSION|OPTIMIZE|PARAMETERIZATION|SIMPLE|FORCED|RECOMPILE|ROBUST|PLAN|SPATIAL_WINDOW_MAX_CELLS|NOEXPAND|HINT"; |
||
85 | keywords += "|LOOP|HASH|MERGE|REMOTE"; |
||
86 | keywords += "|TRY|CATCH|THROW"; |
||
87 | keywords += "|TYPE"; |
||
88 | keywords = keywords.split('|'); |
||
89 | keywords = keywords.filter(function(value, index, self) { |
||
90 | return logicalOperators.split('|').indexOf(value) === -1 && builtinFunctions.split('|').indexOf(value) === -1 && dataTypes.split('|').indexOf(value) === -1; |
||
91 | }); |
||
92 | keywords = keywords.sort().join('|'); |
||
93 | |||
94 | |||
95 | var keywordMapper = this.createKeywordMapper({ |
||
96 | "constant.language": logicalOperators, |
||
97 | "storage.type": dataTypes, |
||
98 | "support.function": builtinFunctions, |
||
99 | "support.storedprocedure": builtInStoredProcedures, |
||
100 | "keyword": keywords |
||
101 | }, "identifier", true); |
||
102 | var setStatements = "SET ANSI_DEFAULTS|SET ANSI_NULLS|SET ANSI_NULL_DFLT_OFF|SET ANSI_NULL_DFLT_ON|SET ANSI_PADDING|SET ANSI_WARNINGS|SET ARITHABORT|SET ARITHIGNORE|SET CONCAT_NULL_YIELDS_NULL|SET CURSOR_CLOSE_ON_COMMIT|SET DATEFIRST|SET DATEFORMAT|SET DEADLOCK_PRIORITY|SET FIPS_FLAGGER|SET FMTONLY|SET FORCEPLAN|SET IDENTITY_INSERT|SET IMPLICIT_TRANSACTIONS|SET LANGUAGE|SET LOCK_TIMEOUT|SET NOCOUNT|SET NOEXEC|SET NUMERIC_ROUNDABORT|SET OFFSETS|SET PARSEONLY|SET QUERY_GOVERNOR_COST_LIMIT|SET QUOTED_IDENTIFIER|SET REMOTE_PROC_TRANSACTIONS|SET ROWCOUNT|SET SHOWPLAN_ALL|SET SHOWPLAN_TEXT|SET SHOWPLAN_XML|SET STATISTICS IO|SET STATISTICS PROFILE|SET STATISTICS TIME|SET STATISTICS XML|SET TEXTSIZE|SET XACT_ABORT".split('|'); |
||
103 | var isolationLevels = "READ UNCOMMITTED|READ COMMITTED|REPEATABLE READ|SNAPSHOP|SERIALIZABLE".split('|'); |
||
104 | for (var i = 0; i < isolationLevels.length; i++) { |
||
105 | setStatements.push('SET TRANSACTION ISOLATION LEVEL ' + isolationLevels[i]); |
||
106 | } |
||
107 | |||
108 | |||
109 | this.$rules = { |
||
110 | start: [{ |
||
111 | token: "string.start", |
||
112 | regex: "'", |
||
113 | next: [{ |
||
114 | token: "constant.language.escape", |
||
115 | regex: /''/ |
||
116 | }, { |
||
117 | token: "string.end", |
||
118 | next: "start", |
||
119 | regex: "'" |
||
120 | }, { |
||
121 | defaultToken: "string" |
||
122 | }] |
||
123 | }, |
||
124 | DocCommentHighlightRules.getStartRule("doc-start"), { |
||
125 | token: "comment", |
||
126 | regex: "--.*$" |
||
127 | }, { |
||
128 | token: "comment", |
||
129 | start: "/\\*", |
||
130 | end: "\\*/" |
||
131 | }, { |
||
132 | token: "constant.numeric", // float |
||
133 | regex: "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" |
||
134 | }, { |
||
135 | token: keywordMapper, |
||
136 | regex: "@{0,2}[a-zA-Z_$][a-zA-Z0-9_$]*\\b(?!])" //up to 2 @symbols for some built in functions |
||
137 | }, { |
||
138 | token: "constant.class", |
||
139 | regex: "@@?[a-zA-Z_$][a-zA-Z0-9_$]*\\b" |
||
140 | }, { |
||
141 | token: "keyword.operator", |
||
142 | regex: "\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|=|\\*" |
||
143 | }, { |
||
144 | token: "paren.lparen", |
||
145 | regex: "[\\(]" |
||
146 | }, { |
||
147 | token: "paren.rparen", |
||
148 | regex: "[\\)]" |
||
149 | }, { |
||
150 | token: "punctuation", |
||
151 | regex: ",|;" |
||
152 | }, { |
||
153 | token: "text", |
||
154 | regex: "\\s+" |
||
155 | }], |
||
156 | comment: [ |
||
157 | DocCommentHighlightRules.getTagRule(), { |
||
158 | token: "comment", |
||
159 | regex: "\\*\\/", |
||
160 | next: "no_regex" |
||
161 | }, { |
||
162 | defaultToken: "comment", |
||
163 | caseInsensitive: true |
||
164 | }] |
||
165 | }; |
||
166 | for (var i = 0; i < setStatements.length; i++) { |
||
167 | this.$rules.start.unshift({ |
||
168 | token: "set.statement", |
||
169 | regex: setStatements[i] |
||
170 | }); |
||
171 | } |
||
172 | |||
173 | this.embedRules(DocCommentHighlightRules, "doc-", [DocCommentHighlightRules.getEndRule("start")]); |
||
174 | this.normalizeRules(); |
||
175 | var completions = []; |
||
176 | var addCompletions = function(arr, meta) { |
||
177 | arr.forEach(function(v) { |
||
178 | completions.push({ |
||
179 | name: v, |
||
180 | value: v, |
||
181 | score: 0, |
||
182 | meta: meta |
||
183 | }); |
||
184 | }); |
||
185 | }; |
||
186 | addCompletions(builtInStoredProcedures.split('|'), 'procedure'); |
||
187 | addCompletions(logicalOperators.split('|'), 'operator'); |
||
188 | addCompletions(builtinFunctions.split('|'), 'function'); |
||
189 | addCompletions(dataTypes.split('|'), 'type'); |
||
190 | addCompletions(setStatements, 'statement'); |
||
191 | addCompletions(keywords.split('|'), 'keyword'); |
||
192 | |||
193 | this.completions = completions; |
||
194 | }; |
||
195 | |||
196 | oop.inherits(SqlServerHighlightRules, TextHighlightRules); |
||
197 | |||
198 | exports.SqlHighlightRules = SqlServerHighlightRules; |
||
199 | }); |
||
200 | |||
201 | ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { |
||
202 | "use strict"; |
||
203 | |||
204 | var oop = require("../../lib/oop"); |
||
205 | var Range = require("../../range").Range; |
||
206 | var BaseFoldMode = require("./fold_mode").FoldMode; |
||
207 | |||
208 | var FoldMode = exports.FoldMode = function(commentRegex) { |
||
209 | if (commentRegex) { |
||
210 | this.foldingStartMarker = new RegExp( |
||
211 | this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) |
||
212 | ); |
||
213 | this.foldingStopMarker = new RegExp( |
||
214 | this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) |
||
215 | ); |
||
216 | } |
||
217 | }; |
||
218 | oop.inherits(FoldMode, BaseFoldMode); |
||
219 | |||
220 | (function() { |
||
221 | |||
222 | this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; |
||
223 | this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; |
||
224 | this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; |
||
225 | this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; |
||
226 | this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; |
||
227 | this._getFoldWidgetBase = this.getFoldWidget; |
||
228 | this.getFoldWidget = function(session, foldStyle, row) { |
||
229 | var line = session.getLine(row); |
||
230 | |||
231 | if (this.singleLineBlockCommentRe.test(line)) { |
||
232 | if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) |
||
233 | return ""; |
||
234 | } |
||
235 | |||
236 | var fw = this._getFoldWidgetBase(session, foldStyle, row); |
||
237 | |||
238 | if (!fw && this.startRegionRe.test(line)) |
||
239 | return "start"; // lineCommentRegionStart |
||
240 | |||
241 | return fw; |
||
242 | }; |
||
243 | |||
244 | this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { |
||
245 | var line = session.getLine(row); |
||
246 | |||
247 | if (this.startRegionRe.test(line)) |
||
248 | return this.getCommentRegionBlock(session, line, row); |
||
249 | |||
250 | var match = line.match(this.foldingStartMarker); |
||
251 | if (match) { |
||
252 | var i = match.index; |
||
253 | |||
254 | if (match[1]) |
||
255 | return this.openingBracketBlock(session, match[1], row, i); |
||
256 | |||
257 | var range = session.getCommentFoldRange(row, i + match[0].length, 1); |
||
258 | |||
259 | if (range && !range.isMultiLine()) { |
||
260 | if (forceMultiline) { |
||
261 | range = this.getSectionRange(session, row); |
||
262 | } else if (foldStyle != "all") |
||
263 | range = null; |
||
264 | } |
||
265 | |||
266 | return range; |
||
267 | } |
||
268 | |||
269 | if (foldStyle === "markbegin") |
||
270 | return; |
||
271 | |||
272 | var match = line.match(this.foldingStopMarker); |
||
273 | if (match) { |
||
274 | var i = match.index + match[0].length; |
||
275 | |||
276 | if (match[1]) |
||
277 | return this.closingBracketBlock(session, match[1], row, i); |
||
278 | |||
279 | return session.getCommentFoldRange(row, i, -1); |
||
280 | } |
||
281 | }; |
||
282 | |||
283 | this.getSectionRange = function(session, row) { |
||
284 | var line = session.getLine(row); |
||
285 | var startIndent = line.search(/\S/); |
||
286 | var startRow = row; |
||
287 | var startColumn = line.length; |
||
288 | row = row + 1; |
||
289 | var endRow = row; |
||
290 | var maxRow = session.getLength(); |
||
291 | while (++row < maxRow) { |
||
292 | line = session.getLine(row); |
||
293 | var indent = line.search(/\S/); |
||
294 | if (indent === -1) |
||
295 | continue; |
||
296 | if (startIndent > indent) |
||
297 | break; |
||
298 | var subRange = this.getFoldWidgetRange(session, "all", row); |
||
299 | |||
300 | if (subRange) { |
||
301 | if (subRange.start.row <= startRow) { |
||
302 | break; |
||
303 | } else if (subRange.isMultiLine()) { |
||
304 | row = subRange.end.row; |
||
305 | } else if (startIndent == indent) { |
||
306 | break; |
||
307 | } |
||
308 | } |
||
309 | endRow = row; |
||
310 | } |
||
311 | |||
312 | return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); |
||
313 | }; |
||
314 | this.getCommentRegionBlock = function(session, line, row) { |
||
315 | var startColumn = line.search(/\s*$/); |
||
316 | var maxRow = session.getLength(); |
||
317 | var startRow = row; |
||
318 | |||
319 | var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; |
||
320 | var depth = 1; |
||
321 | while (++row < maxRow) { |
||
322 | line = session.getLine(row); |
||
323 | var m = re.exec(line); |
||
324 | if (!m) continue; |
||
325 | if (m[1]) depth--; |
||
326 | else depth++; |
||
327 | |||
328 | if (!depth) break; |
||
329 | } |
||
330 | |||
331 | var endRow = row; |
||
332 | if (endRow > startRow) { |
||
333 | return new Range(startRow, startColumn, endRow, line.length); |
||
334 | } |
||
335 | }; |
||
336 | |||
337 | }).call(FoldMode.prototype); |
||
338 | |||
339 | }); |
||
340 | |||
341 | ace.define("ace/mode/folding/sqlserver",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/cstyle"], function(require, exports, module) { |
||
342 | "use strict"; |
||
343 | |||
344 | var oop = require("../../lib/oop"); |
||
345 | var Range = require("../../range").Range; |
||
346 | var BaseFoldMode = require("./cstyle").FoldMode; |
||
347 | |||
348 | var FoldMode = exports.FoldMode = function() {}; |
||
349 | |||
350 | oop.inherits(FoldMode, BaseFoldMode); |
||
351 | |||
352 | (function() { |
||
353 | |||
354 | this.foldingStartMarker = /(\bCASE\b|\bBEGIN\b)|^\s*(\/\*)/i; |
||
355 | this.startRegionRe = /^\s*(\/\*|--)#?region\b/; |
||
356 | |||
357 | this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { |
||
358 | var line = session.getLine(row); |
||
359 | |||
360 | if (this.startRegionRe.test(line)) return this.getCommentRegionBlock(session, line, row); |
||
361 | |||
362 | var match = line.match(this.foldingStartMarker); |
||
363 | if (match) { |
||
364 | var i = match.index; |
||
365 | if (match[1]) return this.getBeginEndBlock(session, row, i, match[1]); |
||
366 | |||
367 | var range = session.getCommentFoldRange(row, i + match[0].length, 1); |
||
368 | if (range && !range.isMultiLine()) { |
||
369 | if (forceMultiline) { |
||
370 | range = this.getSectionRange(session, row); |
||
371 | } |
||
372 | else if (foldStyle != "all") range = null; |
||
373 | } |
||
374 | |||
375 | return range; |
||
376 | } |
||
377 | |||
378 | if (foldStyle === "markbegin") return; |
||
379 | return; |
||
380 | }; |
||
381 | this.getBeginEndBlock = function(session, row, column, matchSequence) { |
||
382 | var start = { |
||
383 | row: row, |
||
384 | column: column + matchSequence.length |
||
385 | }; |
||
386 | var maxRow = session.getLength(); |
||
387 | var line; |
||
388 | |||
389 | var depth = 1; |
||
390 | var re = /(\bCASE\b|\bBEGIN\b)|(\bEND\b)/i; |
||
391 | while (++row < maxRow) { |
||
392 | line = session.getLine(row); |
||
393 | var m = re.exec(line); |
||
394 | if (!m) continue; |
||
395 | if (m[1]) depth++; |
||
396 | else depth--; |
||
397 | |||
398 | if (!depth) break; |
||
399 | } |
||
400 | var endRow = row; |
||
401 | if (endRow > start.row) { |
||
402 | return new Range(start.row, start.column, endRow, line.length); |
||
403 | } |
||
404 | }; |
||
405 | |||
406 | }).call(FoldMode.prototype); |
||
407 | |||
408 | }); |
||
409 | |||
410 | ace.define("ace/mode/sqlserver",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sqlserver_highlight_rules","ace/mode/folding/sqlserver"], function(require, exports, module) { |
||
411 | "use strict"; |
||
412 | |||
413 | var oop = require("../lib/oop"); |
||
414 | var TextMode = require("./text").Mode; |
||
415 | var SqlServerHighlightRules = require("./sqlserver_highlight_rules").SqlHighlightRules; |
||
416 | var SqlServerFoldMode = require("./folding/sqlserver").FoldMode; |
||
417 | |||
418 | var Mode = function() { |
||
419 | this.HighlightRules = SqlServerHighlightRules; |
||
420 | this.foldingRules = new SqlServerFoldMode(); |
||
421 | this.$behaviour = this.$defaultBehaviour; |
||
422 | }; |
||
423 | oop.inherits(Mode, TextMode); |
||
424 | |||
425 | (function() { |
||
426 | this.lineCommentStart = "--"; |
||
427 | this.blockComment = {start: "/*", end: "*/"}; |
||
428 | this.getCompletions = function(state, session, pos, prefix) { |
||
429 | return session.$mode.$highlightRules.completions; |
||
430 | }; |
||
431 | |||
432 | this.$id = "ace/mode/sql"; |
||
433 | }).call(Mode.prototype); |
||
434 | |||
435 | exports.Mode = Mode; |
||
436 | |||
437 | }); |