log-language.js 1.42 KB
function registerLanguage(monaco) {
    monaco.languages.register({
      id: "log"
    });
    monaco.languages.setMonarchTokensProvider("log", {
      tokenizer: {
        root: [
          [/(^[=a-zA-Z].*|\d\s.*)/, "log-normal"],
          [/\sERROR\s.*/, "log-error"],
          [/\sWARN\s.*/, "log-warn"],
          [/\sINFO\s.*/, "log-info"],
          [
            /^([0-9]{4}||[0-9]{2})-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}(.[0-9]{3})?/,
            "log-date",
          ],
          [
            /^[0-9]{2}\/[0-9]{2}\/[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}(.[0-9]{3})?/,
            "log-date",
          ],
          [/(^\*\*Waiting queue:.*)/, "log-info"],
          [/(^\*\*result tips:.*)/, "log-info"],
        ],
      },
    });
    monaco.editor.defineTheme("log", {
      base: "vs",
      inherit: true,
      rules: [{
          token: "log-info",
          foreground: "4b71ca"
        },
        {
          token: "log-error",
          foreground: "ff0000",
          fontStyle: "bold"
        },
        {
          token: "log-warn",
          foreground: "FFA500"
        },
        {
          token: "log-date",
          foreground: "008800"
        },
        {
          token: "log-normal",
          foreground: "808080"
        },
      ],
      colors: {
        "editor.lineHighlightBackground": "#ffffff",
        "editorGutter.background": "#f7f7f7",
      },
    });
  
  }
  
  export default registerLanguage;