Cycle de progression Faire (quelque chose qui marche) -> comprendre ce que l’on fait/comment cela marche -> pousser plus loin les notions
| string Keywords = @"(?<=s|{|}|(|)|,|=|^)(ABSOLUTE|ACTION|ADD|ALL|ALLOCATE|ALTER|AND|ANY|ARE|AS|ASC|ASSERTION|AT|AUTHORIZATION|AVG|BEGIN|BETWEEN|BIT|BIT_LENGTH|BOTH|BY|CASCADE|CASCADED|CASE|CAST|CATALOG|CHAR|CHARACTER|CHAR_LENGTH|CHARACTER_LENGTH|CHECK|CLOSE|COALESCE|COLLATE|COLLATION|COLUMN|COMMIT|CONNECT|CONNECTION|CONSTRAINT|CONSTRAINTS|CONTINUE|CONVERT|CORRESPONDING|COUNT|CREATE|CROSS|CURRENT|CURRENT_DATE|CURRENT_TIME|CURRENT_TIMESTAMP|CURRENT_USER|CURSOR|DATE|DAY|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFERRABLE|DEFERRED|DELETE|DESC|DESCRIBE|DESCRIPTOR|DIAGNOSTICS|DISCONNECT|DISTINCT|DOMAIN|DOUBLE|DROP|ELSE|END|END-EXEC|ESCAPE|EXCEPT|EXCEPTION|EXEC|EXECUTE|EXISTS|EXTERNAL|EXTRACT|FALSE|FETCH|FIRST|FLOAT|FOR|FOREIGN|FOUND|FROM|FULL|GET|GLOBAL|GO|GOTO|GRANT|GROUP|HAVING|HOUR|IDENTITY|IMMEDIATE|IF|IN|INDICATOR|INITIALLY|INNER|INPUT|INSENSITIVE|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|IS|ISOLATION|JOIN|KEY|LANGUAGE|LAST|LEADING|LEFT|LEVEL|LIKE|LOCAL|LOWER|MATCH|MAX|MIN|MINUTE|MODULE|MONTH|NAMES|NATIONAL|NATURAL|NCHAR|NEXT|NO|NOT|NULL|NULLIF|NUMERIC|OCTET_LENGTH|OF|ON|ONLY|OPEN|OPTION|OR|ORDER|OUTER|OUTPUT|OVERLAPS|PAD|PARTIAL|POSITION|PRECISION|PREPARE|PRESERVE|PRIMARY|PRIOR|PRIVILEGES|PROCEDURE|PUBLIC|READ|REAL|REFERENCES|RELATIVE|RESTRICT|REVOKE|RIGHT|ROLLBACK|ROWS|SCHEMA|SCROLL|SECOND|SECTION|SELECT|SESSION|SESSION_USER|SET|SIZE|SMALLINT|SOME|SPACE|SQL|SQLCODE|SQLERROR|SQLSTATE|SUBSTRING|SUM|SYSTEM_USER|TABLE|TEMPORARY|THEN|TIME|TIMESTAMP|TIMEZONE_HOUR|TIMEZONE_MINUTE|TO|TRAILING|TRANSACTION|TRANSLATE|TRANSLATION|TRIM|TRUE|UNION|UNIQUE|UNKNOWN|UPDATE|UPPER|USAGE|USER|USING|VALUE|VALUES|VARCHAR|VARYING|VIEW|WHEN|WHENEVER|WHERE|WITH|WORK|WRITE|YEAR|ZONE)b"; System.Text.RegularExpressions.RegexCompilationInfo oRegexCompilationInfo = new System.Text.RegularExpressions.RegexCompilationInfo(Keywords, System.Text.RegularExpressions.RegexOptions.IgnoreCase, "SQLEditorRegex", "SQLEditorRegex", true); System.Text.RegularExpressions.RegexCompilationInfo[] oRegexCompilationInfos = new System.Text.RegularExpressions.RegexCompilationInfo[] { oRegexCompilationInfo }; System.Reflection.AssemblyName oAssemblyName = new System.Reflection.AssemblyName(); oAssemblyName.Name = "Regex"; System.Text.RegularExpressions.Regex.CompileToAssembly(oRegexCompilationInfos, oAssemblyName); |
| SQLEditorRegex.SQLEditorRegex oSQLEditorRegex; oSQLEditorRegex=new SQLEditorRegex.SQLEditorRegex(); // etc. public void ColorLine(int offset, string sCurrentLine) { if (!this.Created) { } else { Int32 endpos = offset + sCurrentLine.Length; tom.ITextRange rg = this.ITextDocument.Range(offset, endpos); if (rg.Font.CanChange() != 0) { rg.Font.ForeColor = ColorToRGB(System.Drawing.Color.Black); rg.Font.BackColor = 16777215; } System.Collections.IEnumerator oEnum = oSQLEditorRegex.Matches(sCurrentLine).GetEnumerator(); while (oEnum.MoveNext()) { System.Text.RegularExpressions.Match oMatch = (System.Text.RegularExpressions.Match)oEnum.Current; rg.SetRange(offset + oMatch.Index, offset + oMatch.Index + oMatch.Length); rg.Font.BackColor = 16777215; rg.Font.ForeColor = ColorToRGB(System.Drawing.Color.Blue); } } } |