PageRenderTime 46ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/src/php4vs/phpProject/Language/Configuration.cs

#
C# | 120 lines | 90 code | 15 blank | 15 comment | 0 complexity | f19a53715ba62f647ded537bb1162ada MD5 | raw file
  1. /***************************************************************************
  2. Copyright (c) Microsoft Corporation. All rights reserved.
  3. This code is licensed under the Visual Studio SDK license terms.
  4. THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
  5. ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
  6. IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
  7. PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
  8. ***************************************************************************/
  9. using System;
  10. using System.Collections.Generic;
  11. using Microsoft.VisualStudio.Package;
  12. using Babel.Parser;
  13. using Microsoft.VisualStudio.TextManager.Interop;
  14. using dragonangel.phpProject.Language.DSL.Parser;
  15. namespace Babel
  16. {
  17. public static partial class Configuration
  18. {
  19. public const string Name = "PhpFile";
  20. public const string Extension = ".php";
  21. static CommentInfo myCInfo;
  22. public static CommentInfo MyCommentInfo { get { return myCInfo; } }
  23. public static string GetText(this IVsTextView view, int line, int col)
  24. {
  25. string text;
  26. view.GetTextStream(line, 0, line, col, out text);
  27. return text;
  28. }
  29. static Configuration()
  30. {
  31. myCInfo.BlockEnd = "*/";
  32. myCInfo.BlockStart = "/*";
  33. myCInfo.LineStart = "??";
  34. myCInfo.UseLineComments = false;
  35. // default colors - currently, these need to be declared
  36. CreateColor("Keyword", COLORINDEX.CI_BLUE, COLORINDEX.CI_USERTEXT_BK, false, false);
  37. CreateColor("Comment", COLORINDEX.CI_DARKGREEN, COLORINDEX.CI_USERTEXT_BK);
  38. CreateColor("Identifier", COLORINDEX.CI_AQUAMARINE, COLORINDEX.CI_USERTEXT_BK);
  39. CreateColor("String", COLORINDEX.CI_RED, COLORINDEX.CI_USERTEXT_BK);
  40. CreateColor("Number", COLORINDEX.CI_SYSPLAINTEXT_FG, COLORINDEX.CI_USERTEXT_BK);
  41. CreateColor("Text", COLORINDEX.CI_SYSPLAINTEXT_FG, COLORINDEX.CI_USERTEXT_BK);
  42. TokenColor phpCode = CreateColor("phpCode", COLORINDEX.CI_RED, COLORINDEX.CI_USERTEXT_BK);
  43. TokenColor variableColor = CreateColor("Variable", COLORINDEX.CI_DARKBLUE, COLORINDEX.CI_USERTEXT_BK, true, false);
  44. TokenColor simpleString = CreateColor("StringSimple", COLORINDEX.CI_MAROON, COLORINDEX.CI_USERTEXT_BK);
  45. TokenColor brace = CreateColor("Brace", COLORINDEX.CI_DARKGRAY, COLORINDEX.CI_USERTEXT_BK);
  46. TokenColor error = CreateColor("Error", COLORINDEX.CI_RED, COLORINDEX.CI_USERTEXT_BK, false, true);
  47. //
  48. // map tokens to color classes
  49. //
  50. ColorToken((int)Tokens.BEGIN_CODE, TokenType.Operator, phpCode, TokenTriggers.None);
  51. ColorToken((int)Tokens.ALTERNATE_BEGIN_CODE, TokenType.Operator, phpCode, TokenTriggers.None);
  52. ColorToken((int)Tokens.END_CODE, TokenType.Operator, phpCode, TokenTriggers.None);
  53. ColorToken((int)Tokens.KWCLASS, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  54. ColorToken((int)Tokens.KWINTERFACE, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  55. ColorToken((int)Tokens.TYPEIDENTIFIER, TokenType.Identifier, TokenColor.Identifier, TokenTriggers.None);
  56. ColorToken((int)Tokens.TYPEREFERENCEIDENTIFIER, TokenType.Identifier, TokenColor.Identifier, TokenTriggers.MemberSelect);
  57. ColorToken((int)Tokens.KWFUNCTION, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  58. ColorToken((int)Tokens.KWPUBLIC, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  59. ColorToken((int)Tokens.KWPRIVATE, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  60. ColorToken((int)Tokens.KWPROTECTED, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  61. ColorToken((int)Tokens.KWPARENT, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  62. ColorToken((int)Tokens.KWINSTANCEOF, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  63. ColorToken((int)Tokens.KWTHROW, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  64. ColorToken((int)Tokens.KWNEW, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  65. ColorToken((int)Tokens.KWIF, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  66. ColorToken((int)Tokens.KWELSE, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  67. ColorToken((int)Tokens.KWELSEIF, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  68. ColorToken((int)Tokens.KWWHILE, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  69. ColorToken((int)Tokens.KWFOR, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  70. ColorToken((int)Tokens.KWCONTINUE, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  71. ColorToken((int)Tokens.KWBREAK, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  72. ColorToken((int)Tokens.KWRETURN, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  73. ColorToken((int)Tokens.KWINT, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  74. ColorToken((int)Tokens.KWVOID, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  75. ColorToken((int)Tokens.KWSTATIC, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  76. ColorToken((int)Tokens.KWINT, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  77. ColorToken((int)Tokens.KWGLOBAL, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  78. ColorToken((int)Tokens.KWINCLUDE, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  79. ColorToken((int)Tokens.KWINCLUDEONCE, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  80. ColorToken((int)Tokens.KWREQUIRE, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  81. ColorToken((int)Tokens.KWREQUIREONCE, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  82. ColorToken((int)Tokens.NUMBER, TokenType.Literal, TokenColor.Number, TokenTriggers.None);
  83. ColorToken((int)Tokens.KWFUNCTION, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  84. ColorToken((int)Tokens.BUILTIN_FUNCTION, TokenType.Keyword, TokenColor.Keyword, TokenTriggers.None);
  85. ColorToken((int)Tokens.QUOTE, TokenType.String, TokenColor.String, TokenTriggers.None);
  86. ColorToken((int)Tokens.SIMPLEQUOTE, TokenType.String, simpleString, TokenTriggers.None);
  87. ColorToken((int)Tokens.QUOTESTRING, TokenType.Text, TokenColor.String, TokenTriggers.None);
  88. ColorToken((int)Tokens.SIMPLEQUOTESTRING, TokenType.Text, simpleString, TokenTriggers.None);
  89. ColorToken((int)Tokens.KWTHIS, TokenType.Keyword, variableColor, TokenTriggers.None);
  90. ColorToken((int)Tokens.VARIABLE, TokenType.Identifier, variableColor, TokenTriggers.None);
  91. ColorToken((int)Tokens.ACCESSOR, TokenType.Operator, TokenColor.Text, TokenTriggers.MemberSelect);
  92. ColorToken((int)'(', TokenType.Delimiter, brace, TokenTriggers.MatchBraces | TokenTriggers.ParameterStart);
  93. ColorToken((int)')', TokenType.Delimiter, brace, TokenTriggers.MatchBraces | TokenTriggers.ParameterEnd);
  94. ColorToken((int)',', TokenType.Delimiter, TokenColor.Text, TokenTriggers.ParameterNext);
  95. ColorToken((int)'{', TokenType.Delimiter, brace, TokenTriggers.MatchBraces);
  96. ColorToken((int)'}', TokenType.Delimiter, brace, TokenTriggers.MatchBraces);
  97. //// Extra token values internal to the scanner
  98. ColorToken((int)Tokens.LEX_ERROR, TokenType.Text, error, TokenTriggers.None);
  99. ColorToken((int)Tokens.LEX_COMMENT, TokenType.Comment, TokenColor.Comment, TokenTriggers.None);
  100. ColorToken((int)Tokens.LEX_WHITE, TokenType.WhiteSpace, TokenColor.Text, TokenTriggers.None);
  101. }
  102. }
  103. }