keli-ui 0.3.13 → 0.3.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ApprovalRecord-BncClAVJ.js → ApprovalRecord-CAUi65p8.js} +2 -2
- package/dist/{ApprovalRecord-BncClAVJ.js.map → ApprovalRecord-CAUi65p8.js.map} +1 -1
- package/dist/{api-BijZYgZr.js → api-DPWBxyJL.js} +48 -48
- package/dist/{api-BijZYgZr.js.map → api-DPWBxyJL.js.map} +1 -1
- package/dist/components/FormComponent/FormCodeEditor/index.d.ts +2 -1
- package/dist/components/FormComponent/FormCodeEditor/language/index.d.ts +114 -0
- package/dist/components/FormComponent/FormCodeEditor/language/java.d.ts +1 -1
- package/dist/components/FormComponent/FormCodeEditor/language/postgresql.d.ts +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/{java-XIxqoWBD.js → java-CanB8gLZ.js} +39 -33
- package/dist/java-CanB8gLZ.js.map +1 -0
- package/dist/keli-ui.js +1270 -1250
- package/dist/keli-ui.js.map +1 -1
- package/dist/keli-ui.umd.cjs +6 -6
- package/dist/keli-ui.umd.cjs.map +1 -1
- package/dist/{mysql-D_yXY3Wl.js → mysql-BfiDepTc.js} +8 -4
- package/dist/{mysql-D_yXY3Wl.js.map → mysql-BfiDepTc.js.map} +1 -1
- package/dist/{postgresql-KYgISeDf.js → postgresql-63S_TxNE.js} +29 -23
- package/dist/postgresql-63S_TxNE.js.map +1 -0
- package/package.json +1 -1
- package/dist/java-XIxqoWBD.js.map +0 -1
- package/dist/postgresql-KYgISeDf.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"java-XIxqoWBD.js","names":[],"sources":["../src/components/FormComponent/FormCodeEditor/language/java.ts"],"sourcesContent":["import * as monaco from 'monaco-editor';\n\nconst conf = {\n // the default separators except `@$`\n wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,\n comments: {\n lineComment: \"//\",\n blockComment: [\"/*\", \"*/\"]\n },\n brackets: [\n [\"{\", \"}\"],\n [\"[\", \"]\"],\n [\"(\", \")\"]\n ],\n autoClosingPairs: [\n { open: \"{\", close: \"}\" },\n { open: \"[\", close: \"]\" },\n { open: \"(\", close: \")\" },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" }\n ],\n surroundingPairs: [\n { open: \"{\", close: \"}\" },\n { open: \"[\", close: \"]\" },\n { open: \"(\", close: \")\" },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n { open: \"<\", close: \">\" }\n ],\n folding: {\n markers: {\n start: new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?region\\\\b)|(?:<editor-fold\\\\b))\"),\n end: new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?endregion\\\\b)|(?:</editor-fold>))\")\n }\n }\n};\nconst language = {\n defaultToken: \"\",\n tokenPostfix: \".java\",\n keywords: [\n \"abstract\",\n \"continue\",\n \"for\",\n \"new\",\n \"switch\",\n \"assert\",\n \"default\",\n \"goto\",\n \"package\",\n \"synchronized\",\n \"boolean\",\n \"do\",\n \"if\",\n \"private\",\n \"this\",\n \"break\",\n \"double\",\n \"implements\",\n \"protected\",\n \"throw\",\n \"byte\",\n \"else\",\n \"import\",\n \"public\",\n \"throws\",\n \"case\",\n \"enum\",\n \"instanceof\",\n \"return\",\n \"transient\",\n \"catch\",\n \"extends\",\n \"int\",\n \"short\",\n \"try\",\n \"char\",\n \"final\",\n \"interface\",\n \"static\",\n \"void\",\n \"class\",\n \"finally\",\n \"long\",\n \"strictfp\",\n \"volatile\",\n \"const\",\n \"float\",\n \"native\",\n \"super\",\n \"while\",\n \"true\",\n \"false\",\n \"yield\",\n \"record\",\n \"sealed\",\n \"non-sealed\",\n \"permits\"\n ],\n operators: [\n \"=\",\n \">\",\n \"<\",\n \"!\",\n \"~\",\n \"?\",\n \":\",\n \"==\",\n \"<=\",\n \">=\",\n \"!=\",\n \"&&\",\n \"||\",\n \"++\",\n \"--\",\n \"+\",\n \"-\",\n \"*\",\n \"/\",\n \"&\",\n \"|\",\n \"^\",\n \"%\",\n \"<<\",\n \">>\",\n \">>>\",\n \"+=\",\n \"-=\",\n \"*=\",\n \"/=\",\n \"&=\",\n \"|=\",\n \"^=\",\n \"%=\",\n \"<<=\",\n \">>=\",\n \">>>=\"\n ],\n // 常用类型\n typeKeywords: [\n 'String', 'Integer', 'Long', 'Double', 'Float', 'Boolean', 'Character', 'Byte', 'Short',\n 'Object', 'Class', 'System', 'Math', 'StringBuilder', 'StringBuffer',\n 'List', 'ArrayList', 'LinkedList', 'Map', 'HashMap', 'TreeMap', 'LinkedHashMap',\n 'Set', 'HashSet', 'TreeSet', 'LinkedHashSet', 'Queue', 'Deque', 'Stack',\n 'Collection', 'Collections', 'Arrays', 'Optional', 'Stream', 'Collectors',\n 'Exception', 'RuntimeException', 'Error', 'Throwable',\n 'Thread', 'Runnable', 'Callable', 'Future', 'CompletableFuture',\n 'Date', 'LocalDate', 'LocalTime', 'LocalDateTime', 'Instant', 'Duration',\n 'File', 'Path', 'Files', 'InputStream', 'OutputStream', 'Reader', 'Writer',\n 'Pattern', 'Matcher', 'Scanner', 'Random', 'UUID',\n 'BigDecimal', 'BigInteger', 'AtomicInteger', 'AtomicLong',\n 'Comparator', 'Comparable', 'Iterator', 'Iterable',\n 'Function', 'Consumer', 'Supplier', 'Predicate', 'BiFunction',\n ],\n // we include these common regular expressions\n symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n digits: /\\d+(_+\\d+)*/,\n octaldigits: /[0-7]+(_+[0-7]+)*/,\n binarydigits: /[0-1]+(_+[0-1]+)*/,\n hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,\n // The main tokenizer for our languages\n tokenizer: {\n root: [\n // Special keyword with a dash\n [\"non-sealed\", \"keyword.non-sealed\"],\n // 方法调用 - xxx.method() 中的 method 显示为函数色\n [/([a-zA-Z_$][\\w$]*)(\\s*)(\\()/, [\n {\n cases: {\n \"@keywords\": \"keyword.$0\",\n \"@typeKeywords\": \"type\",\n \"@default\": \"function\"\n }\n },\n \"\",\n \"@brackets\"\n ]],\n // 类名 - 大写开头的标识符\n [/[A-Z][\\w$]*/, {\n cases: {\n \"@keywords\": \"keyword.$0\",\n \"@typeKeywords\": \"type\",\n \"@default\": \"type\"\n }\n }],\n // identifiers and keywords\n [\n /[a-z_$][\\w$]*/,\n {\n cases: {\n \"@keywords\": { token: \"keyword.$0\" },\n \"@default\": \"identifier\"\n }\n }\n ],\n // whitespace\n { include: \"@whitespace\" },\n // delimiters and operators\n [/[{}()\\[\\]]/, \"@brackets\"],\n [/[<>](?!@symbols)/, \"@brackets\"],\n [\n /@symbols/,\n {\n cases: {\n \"@operators\": \"delimiter\",\n \"@default\": \"\"\n }\n }\n ],\n // @ annotations.\n [/@\\s*[a-zA-Z_\\$][\\w\\$]*/, \"annotation\"],\n // numbers\n [/(@digits)[eE]([\\-+]?(@digits))?[fFdD]?/, \"number.float\"],\n [/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?[fFdD]?/, \"number.float\"],\n [/0[xX](@hexdigits)[Ll]?/, \"number.hex\"],\n [/0(@octaldigits)[Ll]?/, \"number.octal\"],\n [/0[bB](@binarydigits)[Ll]?/, \"number.binary\"],\n [/(@digits)[fFdD]/, \"number.float\"],\n [/(@digits)[lL]?/, \"number\"],\n // delimiter: after number because of .\\d floats\n [/[;,.]/, \"delimiter\"],\n // strings\n [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n // non-teminated string\n [/\"\"\"/, \"string\", \"@multistring\"],\n [/\"/, \"string\", \"@string\"],\n // characters\n [/'[^\\\\']'/, \"string\"],\n [/(')(@escapes)(')/, [\"string\", \"string.escape\", \"string\"]],\n [/'/, \"string.invalid\"]\n ],\n whitespace: [\n [/[ \\t\\r\\n]+/, \"\"],\n [/\\/\\*\\*(?!\\/)/, \"comment.doc\", \"@javadoc\"],\n [/\\/\\*/, \"comment\", \"@comment\"],\n [/\\/\\/.*$/, \"comment\"]\n ],\n comment: [\n [/[^\\/*]+/, \"comment\"],\n // [/\\/\\*/, 'comment', '@push' ], // nested comment not allowed :-(\n // [/\\/\\*/, 'comment.invalid' ], // this breaks block comments in the shape of /* //*/\n [/\\*\\//, \"comment\", \"@pop\"],\n [/[\\/*]/, \"comment\"]\n ],\n //Identical copy of comment above, except for the addition of .doc\n javadoc: [\n [/[^\\/*]+/, \"comment.doc\"],\n // [/\\/\\*/, 'comment.doc', '@push' ], // nested comment not allowed :-(\n [/\\/\\*/, \"comment.doc.invalid\"],\n [/\\*\\//, \"comment.doc\", \"@pop\"],\n [/[\\/*]/, \"comment.doc\"]\n ],\n string: [\n [/[^\\\\\"]+/, \"string\"],\n [/@escapes/, \"string.escape\"],\n [/\\\\./, \"string.escape.invalid\"],\n [/\"/, \"string\", \"@pop\"]\n ],\n multistring: [\n [/[^\\\\\"]+/, \"string\"],\n [/@escapes/, \"string.escape\"],\n [/\\\\./, \"string.escape.invalid\"],\n [/\"\"\"/, \"string\", \"@pop\"],\n [/./, \"string\"]\n ]\n }\n};\nexport {\n conf,\n language,\n registerJavaCompletion,\n defineJavaThemes\n};\n\nfunction defineJavaThemes() {\n // Java 暗色主题\n monaco.editor.defineTheme('java-dark', {\n base: 'vs-dark',\n inherit: true,\n rules: [\n { token: 'keyword', foreground: '569CD6' },\n { token: 'keyword.package', foreground: 'C586C0' },\n { token: 'keyword.import', foreground: 'C586C0' },\n { token: 'keyword.class', foreground: '569CD6' },\n { token: 'keyword.interface', foreground: '569CD6' },\n { token: 'keyword.public', foreground: '569CD6' },\n { token: 'keyword.private', foreground: '569CD6' },\n { token: 'keyword.protected', foreground: '569CD6' },\n { token: 'keyword.static', foreground: '569CD6' },\n { token: 'keyword.final', foreground: '569CD6' },\n { token: 'keyword.void', foreground: '569CD6' },\n { token: 'keyword.return', foreground: 'C586C0' },\n { token: 'keyword.new', foreground: '569CD6' },\n { token: 'keyword.if', foreground: 'C586C0' },\n { token: 'keyword.else', foreground: 'C586C0' },\n { token: 'keyword.for', foreground: 'C586C0' },\n { token: 'keyword.while', foreground: 'C586C0' },\n { token: 'keyword.try', foreground: 'C586C0' },\n { token: 'keyword.catch', foreground: 'C586C0' },\n { token: 'keyword.throw', foreground: 'C586C0' },\n { token: 'keyword.throws', foreground: 'C586C0' },\n { token: 'type', foreground: '4EC9B0' }, // 青色 - 类型/类名\n { token: 'function', foreground: 'DCDCAA' }, // 黄色 - 方法名\n { token: 'annotation', foreground: 'D7BA7D' }, // 金色 - 注解\n { token: 'string', foreground: 'CE9178' }, // 橙色 - 字符串\n { token: 'number', foreground: 'B5CEA8' }, // 浅绿 - 数字\n { token: 'comment', foreground: '6A9955' }, // 绿色 - 注释\n { token: 'comment.doc', foreground: '6A9955' },\n { token: 'identifier', foreground: '9CDCFE' }, // 浅蓝 - 变量\n { token: 'delimiter', foreground: 'D4D4D4' },\n ],\n colors: {},\n });\n\n // Java 亮色主题\n monaco.editor.defineTheme('java-light', {\n base: 'vs',\n inherit: true,\n rules: [\n { token: 'keyword', foreground: '0000FF' },\n { token: 'keyword.package', foreground: 'AF00DB' },\n { token: 'keyword.import', foreground: 'AF00DB' },\n { token: 'keyword.return', foreground: 'AF00DB' },\n { token: 'keyword.if', foreground: 'AF00DB' },\n { token: 'keyword.else', foreground: 'AF00DB' },\n { token: 'keyword.for', foreground: 'AF00DB' },\n { token: 'keyword.while', foreground: 'AF00DB' },\n { token: 'keyword.try', foreground: 'AF00DB' },\n { token: 'keyword.catch', foreground: 'AF00DB' },\n { token: 'keyword.throw', foreground: 'AF00DB' },\n { token: 'type', foreground: '267F99' }, // 青色 - 类型/类名\n { token: 'function', foreground: '795E26' }, // 棕黄 - 方法名\n { token: 'annotation', foreground: '808000' }, // 橄榄 - 注解\n { token: 'string', foreground: 'A31515' }, // 红色 - 字符串\n { token: 'number', foreground: '098658' }, // 绿色 - 数字\n { token: 'comment', foreground: '008000' }, // 绿色 - 注释\n { token: 'identifier', foreground: '001080' }, // 深蓝 - 变量\n ],\n colors: {},\n });\n}\n\nlet javaCompletionRegistered = false;\n\nfunction registerJavaCompletion() {\n if (javaCompletionRegistered) return;\n javaCompletionRegistered = true;\n\n monaco.languages.registerCompletionItemProvider('java', {\n triggerCharacters: ['.', '@', ' '],\n provideCompletionItems: (model, position) => {\n const word = model.getWordUntilPosition(position);\n const range = {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endColumn: word.endColumn,\n };\n const line = model.getLineContent(position.lineNumber);\n const before = line.substring(0, position.column - 1);\n const currentWord = word.word.toLowerCase();\n const suggestions: monaco.languages.CompletionItem[] = [];\n\n // Java 关键字和类型 - 只要有输入就提示\n if (currentWord.length >= 1) {\n const keywords: [string, string, string][] = [\n // 访问修饰符\n ['public', '公共访问', 'public '],\n ['private', '私有访问', 'private '],\n ['protected', '受保护访问', 'protected '],\n // 修饰符\n ['static', '静态', 'static '],\n ['final', '最终', 'final '],\n ['abstract', '抽象', 'abstract '],\n ['native', '本地方法', 'native '],\n ['strictfp', '严格浮点', 'strictfp '],\n ['synchronized', '同步', 'synchronized '],\n ['volatile', '易变', 'volatile '],\n ['transient', '瞬态', 'transient '],\n // 类型声明\n ['class', '类', 'class $1 {\\n $2\\n}'],\n ['interface', '接口', 'interface $1 {\\n $2\\n}'],\n ['enum', '枚举', 'enum $1 {\\n $2\\n}'],\n ['record', '记录类', 'record $1($2) {}'],\n ['@interface', '注解定义', '@interface $1 {\\n $2\\n}'],\n // 继承实现\n ['extends', '继承', 'extends '],\n ['implements', '实现', 'implements '],\n ['permits', '允许', 'permits '],\n ['sealed', '密封类', 'sealed '],\n ['non-sealed', '非密封', 'non-sealed '],\n // 包和导入\n ['package', '包声明', 'package $1;'],\n ['import', '导入', 'import $1;'],\n ['import static', '静态导入', 'import static $1;'],\n // 控制流\n ['if', '条件判断', 'if ($1) {\\n $2\\n}'],\n ['else', '否则', 'else {\\n $1\\n}'],\n ['else if', '否则如果', 'else if ($1) {\\n $2\\n}'],\n ['switch', 'switch语句', 'switch ($1) {\\n case $2 -> $3;\\n default -> $4;\\n}'],\n ['case', 'case分支', 'case $1 -> $2;'],\n ['default', '默认', 'default -> $1;'],\n ['for', 'for循环', 'for (int i = 0; i < $1; i++) {\\n $2\\n}'],\n ['while', 'while循环', 'while ($1) {\\n $2\\n}'],\n ['do', 'do-while', 'do {\\n $1\\n} while ($2);'],\n ['break', '跳出循环', 'break;'],\n ['continue', '继续循环', 'continue;'],\n ['return', '返回', 'return $1;'],\n ['yield', 'yield返回', 'yield $1;'],\n // 异常处理\n ['try', 'try块', 'try {\\n $1\\n} catch (Exception e) {\\n $2\\n}'],\n ['catch', 'catch块', 'catch ($1 e) {\\n $2\\n}'],\n ['finally', 'finally块', 'finally {\\n $1\\n}'],\n ['throw', '抛出异常', 'throw new $1(\"$2\");'],\n ['throws', '声明异常', 'throws $1'],\n // 对象操作\n ['new', '创建对象', 'new $1($2)'],\n ['this', '当前对象', 'this'],\n ['super', '父类引用', 'super'],\n ['instanceof', '类型检查', 'instanceof $1'],\n ['var', '类型推断', 'var $1 = $2;'],\n // 断言\n ['assert', '断言', 'assert $1 : \"$2\";'],\n // 常量\n ['null', '空值', 'null'],\n ['true', '真', 'true'],\n ['false', '假', 'false'],\n \n // 基本类型\n ['void', '无返回值', 'void'],\n ['boolean', '布尔型', 'boolean'],\n ['byte', '字节型', 'byte'],\n ['short', '短整型', 'short'],\n ['int', '整型', 'int'],\n ['long', '长整型', 'long'],\n ['float', '单精度浮点', 'float'],\n ['double', '双精度浮点', 'double'],\n ['char', '字符型', 'char'],\n \n // 包装类\n ['Boolean', '布尔包装类', 'Boolean'],\n ['Byte', '字节包装类', 'Byte'],\n ['Short', '短整型包装类', 'Short'],\n ['Integer', '整型包装类', 'Integer'],\n ['Long', '长整型包装类', 'Long'],\n ['Float', '单精度包装类', 'Float'],\n ['Double', '双精度包装类', 'Double'],\n ['Character', '字符包装类', 'Character'],\n ['Number', '数字基类', 'Number'],\n \n // 常用类\n ['String', '字符串', 'String'],\n ['StringBuilder', '字符串构建器', 'StringBuilder'],\n ['StringBuffer', '线程安全字符串', 'StringBuffer'],\n ['Object', '对象基类', 'Object'],\n ['Class', '类对象', 'Class<$1>'],\n ['System', '系统类', 'System'],\n ['Math', '数学类', 'Math'],\n ['Arrays', '数组工具', 'Arrays'],\n ['Objects', '对象工具', 'Objects'],\n ['Collections', '集合工具', 'Collections'],\n \n // 集合类\n ['List', '列表接口', 'List<$1>'],\n ['ArrayList', '数组列表', 'new ArrayList<$1>()'],\n ['LinkedList', '链表', 'new LinkedList<$1>()'],\n ['Set', '集合接口', 'Set<$1>'],\n ['HashSet', '哈希集合', 'new HashSet<$1>()'],\n ['TreeSet', '树集合', 'new TreeSet<$1>()'],\n ['LinkedHashSet', '有序哈希集合', 'new LinkedHashSet<$1>()'],\n ['Map', '映射接口', 'Map<$1, $2>'],\n ['HashMap', '哈希映射', 'new HashMap<$1, $2>()'],\n ['TreeMap', '树映射', 'new TreeMap<$1, $2>()'],\n ['LinkedHashMap', '有序哈希映射', 'new LinkedHashMap<$1, $2>()'],\n ['ConcurrentHashMap', '并发哈希映射', 'new ConcurrentHashMap<$1, $2>()'],\n ['Queue', '队列接口', 'Queue<$1>'],\n ['Deque', '双端队列', 'Deque<$1>'],\n ['Stack', '栈', 'new Stack<$1>()'],\n ['Vector', '向量', 'new Vector<$1>()'],\n ['Collection', '集合接口', 'Collection<$1>'],\n ['Iterable', '可迭代接口', 'Iterable<$1>'],\n ['Iterator', '迭代器', 'Iterator<$1>'],\n \n // Optional\n ['Optional', 'Optional容器', 'Optional<$1>'],\n ['OptionalInt', 'int的Optional', 'OptionalInt'],\n ['OptionalLong', 'long的Optional', 'OptionalLong'],\n ['OptionalDouble', 'double的Optional', 'OptionalDouble'],\n \n // Stream\n ['Stream', '流', 'Stream<$1>'],\n ['IntStream', 'int流', 'IntStream'],\n ['LongStream', 'long流', 'LongStream'],\n ['DoubleStream', 'double流', 'DoubleStream'],\n ['Collectors', '收集器', 'Collectors'],\n \n // 函数式接口\n ['Function', '函数接口', 'Function<$1, $2>'],\n ['BiFunction', '双参数函数', 'BiFunction<$1, $2, $3>'],\n ['Consumer', '消费者接口', 'Consumer<$1>'],\n ['BiConsumer', '双参数消费者', 'BiConsumer<$1, $2>'],\n ['Supplier', '供应者接口', 'Supplier<$1>'],\n ['Predicate', '断言接口', 'Predicate<$1>'],\n ['BiPredicate', '双参数断言', 'BiPredicate<$1, $2>'],\n ['UnaryOperator', '一元操作符', 'UnaryOperator<$1>'],\n ['BinaryOperator', '二元操作符', 'BinaryOperator<$1>'],\n ['Comparator', '比较器', 'Comparator<$1>'],\n ['Comparable', '可比较接口', 'Comparable<$1>'],\n ['Runnable', '可运行接口', 'Runnable'],\n ['Callable', '可调用接口', 'Callable<$1>'],\n \n // 异常类\n ['Exception', '异常', 'Exception'],\n ['RuntimeException', '运行时异常', 'RuntimeException'],\n ['NullPointerException', '空指针异常', 'NullPointerException'],\n ['IllegalArgumentException', '非法参数异常', 'IllegalArgumentException'],\n ['IllegalStateException', '非法状态异常', 'IllegalStateException'],\n ['IndexOutOfBoundsException', '索引越界异常', 'IndexOutOfBoundsException'],\n ['IOException', 'IO异常', 'IOException'],\n ['FileNotFoundException', '文件未找到异常', 'FileNotFoundException'],\n ['SQLException', 'SQL异常', 'SQLException'],\n ['ClassNotFoundException', '类未找到异常', 'ClassNotFoundException'],\n ['NoSuchMethodException', '方法未找到异常', 'NoSuchMethodException'],\n ['Error', '错误', 'Error'],\n ['Throwable', '可抛出', 'Throwable'],\n \n // 并发类\n ['Thread', '线程', 'Thread'],\n ['Future', 'Future接口', 'Future<$1>'],\n ['CompletableFuture', '可完成Future', 'CompletableFuture<$1>'],\n ['ExecutorService', '执行器服务', 'ExecutorService'],\n ['Executors', '执行器工厂', 'Executors'],\n ['ThreadPoolExecutor', '线程池执行器', 'ThreadPoolExecutor'],\n ['CountDownLatch', '倒计时门闩', 'CountDownLatch'],\n ['CyclicBarrier', '循环屏障', 'CyclicBarrier'],\n ['Semaphore', '信号量', 'Semaphore'],\n ['ReentrantLock', '可重入锁', 'ReentrantLock'],\n ['AtomicInteger', '原子整数', 'AtomicInteger'],\n ['AtomicLong', '原子长整数', 'AtomicLong'],\n ['AtomicBoolean', '原子布尔', 'AtomicBoolean'],\n ['AtomicReference', '原子引用', 'AtomicReference<$1>'],\n \n // 日期时间\n ['Date', '日期(旧)', 'Date'],\n ['Calendar', '日历(旧)', 'Calendar'],\n ['LocalDate', '本地日期', 'LocalDate'],\n ['LocalTime', '本地时间', 'LocalTime'],\n ['LocalDateTime', '本地日期时间', 'LocalDateTime'],\n ['ZonedDateTime', '带时区日期时间', 'ZonedDateTime'],\n ['Instant', '时间戳', 'Instant'],\n ['Duration', '时间段', 'Duration'],\n ['Period', '日期段', 'Period'],\n ['DateTimeFormatter', '日期格式化', 'DateTimeFormatter'],\n \n // IO类\n ['File', '文件', 'File'],\n ['Path', '路径', 'Path'],\n ['Paths', '路径工具', 'Paths'],\n ['Files', '文件工具', 'Files'],\n ['InputStream', '输入流', 'InputStream'],\n ['OutputStream', '输出流', 'OutputStream'],\n ['FileInputStream', '文件输入流', 'FileInputStream'],\n ['FileOutputStream', '文件输出流', 'FileOutputStream'],\n ['BufferedReader', '缓冲读取器', 'BufferedReader'],\n ['BufferedWriter', '缓冲写入器', 'BufferedWriter'],\n ['Reader', '读取器', 'Reader'],\n ['Writer', '写入器', 'Writer'],\n \n // 其他常用\n ['BigDecimal', '高精度小数', 'BigDecimal'],\n ['BigInteger', '高精度整数', 'BigInteger'],\n ['UUID', 'UUID', 'UUID'],\n ['Random', '随机数', 'Random'],\n ['Pattern', '正则模式', 'Pattern'],\n ['Matcher', '正则匹配器', 'Matcher'],\n ['Scanner', '扫描器', 'Scanner'],\n ['Enum', '枚举基类', 'Enum'],\n ['Annotation', '注解接口', 'Annotation'],\n ['Override', '重写注解', '@Override'],\n ['Deprecated', '弃用注解', '@Deprecated'],\n ['SuppressWarnings', '抑制警告', '@SuppressWarnings(\"$1\")'],\n ];\n keywords.filter(([label]) => label.toLowerCase().startsWith(currentWord)).forEach(([label, detail, text]) => {\n suggestions.push({ \n label, \n detail, \n insertText: text, \n range, \n kind: monaco.languages.CompletionItemKind.Keyword, \n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n sortText: '0' + label, // 优先显示\n });\n });\n }\n\n // 注解\n if (before.endsWith('@') || /@\\w*$/.test(before)) {\n const annotations: [string, string, string][] = [\n ['@Override', '重写方法', '@Override'],\n ['@Deprecated', '已弃用', '@Deprecated'],\n ['@SuppressWarnings', '抑制警告', '@SuppressWarnings(\"$1\")'],\n ['@FunctionalInterface', '函数式接口', '@FunctionalInterface'],\n ['@SafeVarargs', '安全可变参数', '@SafeVarargs'],\n ['@Autowired', 'Spring自动注入', '@Autowired'],\n ['@Component', 'Spring组件', '@Component'],\n ['@Service', 'Spring服务', '@Service'],\n ['@Repository', 'Spring仓库', '@Repository'],\n ['@Controller', 'Spring控制器', '@Controller'],\n ['@RestController', 'REST控制器', '@RestController'],\n ['@RequestMapping', '请求映射', '@RequestMapping(\"$1\")'],\n ['@GetMapping', 'GET请求', '@GetMapping(\"$1\")'],\n ['@PostMapping', 'POST请求', '@PostMapping(\"$1\")'],\n ['@PutMapping', 'PUT请求', '@PutMapping(\"$1\")'],\n ['@DeleteMapping', 'DELETE请求', '@DeleteMapping(\"$1\")'],\n ['@PathVariable', '路径变量', '@PathVariable'],\n ['@RequestParam', '请求参数', '@RequestParam'],\n ['@RequestBody', '请求体', '@RequestBody'],\n ['@ResponseBody', '响应体', '@ResponseBody'],\n ['@Bean', 'Spring Bean', '@Bean'],\n ['@Configuration', '配置类', '@Configuration'],\n ['@Value', '注入值', '@Value(\"${$1}\")'],\n ['@Transactional', '事务', '@Transactional'],\n ['@Slf4j', 'Lombok日志', '@Slf4j'],\n ['@Data', 'Lombok数据类', '@Data'],\n ['@Getter', 'Lombok Getter', '@Getter'],\n ['@Setter', 'Lombok Setter', '@Setter'],\n ['@NoArgsConstructor', '无参构造', '@NoArgsConstructor'],\n ['@AllArgsConstructor', '全参构造', '@AllArgsConstructor'],\n ['@Builder', 'Lombok Builder', '@Builder'],\n ['@ToString', 'Lombok ToString', '@ToString'],\n ['@EqualsAndHashCode', 'Lombok Equals/HashCode', '@EqualsAndHashCode'],\n ['@Test', 'JUnit测试', '@Test'],\n ['@BeforeEach', 'JUnit前置', '@BeforeEach'],\n ['@AfterEach', 'JUnit后置', '@AfterEach'],\n ['@Nullable', '可空', '@Nullable'],\n ['@NotNull', '非空', '@NotNull'],\n ['@Valid', '验证', '@Valid'],\n ];\n const atIndex = before.lastIndexOf('@');\n const typed = before.substring(atIndex + 1).toLowerCase();\n const annotationRange = {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: atIndex + 1,\n endColumn: position.column,\n };\n annotations.filter(([label]) => typed.length === 0 || label.toLowerCase().includes(typed)).forEach(([label, detail, text]) => {\n suggestions.push({ label, detail, insertText: text, range: annotationRange, kind: monaco.languages.CompletionItemKind.Interface, insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet });\n });\n }\n\n // 常用方法 - 在 . 后触发\n if (before.endsWith('.')) {\n const methods: [string, string, string][] = [\n // Object 方法\n ['toString()', '转字符串', 'toString()'],\n ['equals()', '比较相等', 'equals($1)'],\n ['hashCode()', '哈希码', 'hashCode()'],\n ['getClass()', '获取类', 'getClass()'],\n // String 方法\n ['length()', '字符串长度', 'length()'],\n ['isEmpty()', '是否为空', 'isEmpty()'],\n ['isBlank()', '是否空白', 'isBlank()'],\n ['trim()', '去除空格', 'trim()'],\n ['strip()', '去除空白', 'strip()'],\n ['toLowerCase()', '转小写', 'toLowerCase()'],\n ['toUpperCase()', '转大写', 'toUpperCase()'],\n ['substring()', '截取子串', 'substring($1, $2)'],\n ['charAt()', '获取字符', 'charAt($1)'],\n ['indexOf()', '查找索引', 'indexOf($1)'],\n ['lastIndexOf()', '最后索引', 'lastIndexOf($1)'],\n ['contains()', '是否包含', 'contains($1)'],\n ['startsWith()', '是否开头', 'startsWith($1)'],\n ['endsWith()', '是否结尾', 'endsWith($1)'],\n ['replace()', '替换', 'replace($1, $2)'],\n ['replaceAll()', '正则替换', 'replaceAll($1, $2)'],\n ['split()', '分割', 'split($1)'],\n ['join()', '连接', 'join($1, $2)'],\n ['format()', '格式化', 'format($1)'],\n ['matches()', '正则匹配', 'matches($1)'],\n // Collection 方法\n ['add()', '添加元素', 'add($1)'],\n ['addAll()', '添加所有', 'addAll($1)'],\n ['remove()', '移除元素', 'remove($1)'],\n ['removeAll()', '移除所有', 'removeAll($1)'],\n ['clear()', '清空', 'clear()'],\n ['size()', '大小', 'size()'],\n ['get()', '获取元素', 'get($1)'],\n ['set()', '设置元素', 'set($1, $2)'],\n ['contains()', '是否包含', 'contains($1)'],\n ['containsAll()', '是否包含所有', 'containsAll($1)'],\n ['iterator()', '迭代器', 'iterator()'],\n ['toArray()', '转数组', 'toArray()'],\n ['stream()', '流', 'stream()'],\n ['forEach()', '遍历', 'forEach($1 -> $2)'],\n // Map 方法\n ['put()', '放入', 'put($1, $2)'],\n ['putAll()', '放入所有', 'putAll($1)'],\n ['get()', '获取', 'get($1)'],\n ['getOrDefault()', '获取或默认', 'getOrDefault($1, $2)'],\n ['containsKey()', '包含键', 'containsKey($1)'],\n ['containsValue()', '包含值', 'containsValue($1)'],\n ['keySet()', '键集合', 'keySet()'],\n ['values()', '值集合', 'values()'],\n ['entrySet()', '条目集合', 'entrySet()'],\n // Stream 方法\n ['filter()', '过滤', 'filter($1 -> $2)'],\n ['map()', '映射', 'map($1 -> $2)'],\n ['flatMap()', '扁平映射', 'flatMap($1 -> $2)'],\n ['sorted()', '排序', 'sorted()'],\n ['distinct()', '去重', 'distinct()'],\n ['limit()', '限制', 'limit($1)'],\n ['skip()', '跳过', 'skip($1)'],\n ['collect()', '收集', 'collect(Collectors.$1)'],\n ['toList()', '转列表', 'toList()'],\n ['findFirst()', '查找第一个', 'findFirst()'],\n ['findAny()', '查找任意', 'findAny()'],\n ['anyMatch()', '任意匹配', 'anyMatch($1 -> $2)'],\n ['allMatch()', '全部匹配', 'allMatch($1 -> $2)'],\n ['noneMatch()', '无匹配', 'noneMatch($1 -> $2)'],\n ['count()', '计数', 'count()'],\n ['reduce()', '归约', 'reduce($1, ($2, $3) -> $4)'],\n // Optional 方法\n ['isPresent()', '是否存在', 'isPresent()'],\n ['isEmpty()', '是否为空', 'isEmpty()'],\n ['get()', '获取值', 'get()'],\n ['orElse()', '或者', 'orElse($1)'],\n ['orElseGet()', '或者获取', 'orElseGet(() -> $1)'],\n ['orElseThrow()', '或者抛出', 'orElseThrow(() -> new $1())'],\n ['ifPresent()', '如果存在', 'ifPresent($1 -> $2)'],\n ['map()', '映射', 'map($1 -> $2)'],\n ['flatMap()', '扁平映射', 'flatMap($1 -> $2)'],\n ['filter()', '过滤', 'filter($1 -> $2)'],\n // 打印\n ['println()', '打印换行', 'println($1)'],\n ['print()', '打印', 'print($1)'],\n ['printf()', '格式化打印', 'printf($1)'],\n ];\n methods.forEach(([label, detail, text]) => {\n suggestions.push({ label, detail, insertText: text, range, kind: monaco.languages.CompletionItemKind.Method, insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet });\n });\n }\n\n // 代码片段\n if (currentWord.length >= 1) {\n const snippets: [string, string, string][] = [\n // 输出\n ['sout', 'System.out.println', 'System.out.println($1);'],\n ['soutv', '打印变量', 'System.out.println(\"$1 = \" + $1);'],\n ['serr', 'System.err.println', 'System.err.println($1);'],\n ['souf', 'System.out.printf', 'System.out.printf(\"$1%n\", $2);'],\n \n // main方法\n ['psvm', 'main方法', 'public static void main(String[] args) {\\n $1\\n}'],\n ['main', 'main方法', 'public static void main(String[] args) {\\n $1\\n}'],\n \n // 方法定义\n ['pub', 'public方法', 'public $1 $2($3) {\\n $4\\n}'],\n ['priv', 'private方法', 'private $1 $2($3) {\\n $4\\n}'],\n ['prot', 'protected方法', 'protected $1 $2($3) {\\n $4\\n}'],\n ['pubsf', 'public static final', 'public static final $1 $2 = $3;'],\n ['privsf', 'private static final', 'private static final $1 $2 = $3;'],\n \n // 循环\n ['fori', 'for i循环', 'for (int i = 0; i < $1; i++) {\\n $2\\n}'],\n ['forr', 'for 倒序循环', 'for (int i = $1 - 1; i >= 0; i--) {\\n $2\\n}'],\n ['fore', '增强for循环', 'for ($1 $2 : $3) {\\n $4\\n}'],\n ['iter', '迭代器循环', 'for (Iterator<$1> it = $2.iterator(); it.hasNext(); ) {\\n $1 $3 = it.next();\\n $4\\n}'],\n ['while', 'while循环', 'while ($1) {\\n $2\\n}'],\n ['dowhile', 'do-while循环', 'do {\\n $1\\n} while ($2);'],\n \n // 条件\n ['ife', 'if-else', 'if ($1) {\\n $2\\n} else {\\n $3\\n}'],\n ['ifn', 'if null', 'if ($1 == null) {\\n $2\\n}'],\n ['ifnn', 'if not null', 'if ($1 != null) {\\n $2\\n}'],\n ['tern', '三元表达式', '$1 ? $2 : $3'],\n \n // 异常\n ['tryc', 'try-catch', 'try {\\n $1\\n} catch (Exception e) {\\n $2\\n}'],\n ['trycf', 'try-catch-finally', 'try {\\n $1\\n} catch (Exception e) {\\n $2\\n} finally {\\n $3\\n}'],\n ['tryr', 'try-with-resources', 'try ($1) {\\n $2\\n} catch (Exception e) {\\n $3\\n}'],\n ['throw', '抛出异常', 'throw new $1(\"$2\");'],\n \n // 集合创建\n ['lst', 'new ArrayList', 'List<$1> $2 = new ArrayList<>();'],\n ['lstaof', 'List.of', 'List.of($1)'],\n ['map', 'new HashMap', 'Map<$1, $2> $3 = new HashMap<>();'],\n ['mapof', 'Map.of', 'Map.of($1, $2)'],\n ['set', 'new HashSet', 'Set<$1> $2 = new HashSet<>();'],\n ['setof', 'Set.of', 'Set.of($1)'],\n \n // Stream\n ['stream', 'stream操作', '$1.stream()\\n .filter($2 -> $3)\\n .map($4 -> $5)\\n .collect(Collectors.toList())'],\n ['streamf', 'stream filter', '$1.stream().filter($2 -> $3).collect(Collectors.toList())'],\n ['streamm', 'stream map', '$1.stream().map($2 -> $3).collect(Collectors.toList())'],\n ['foreach', 'forEach', '$1.forEach($2 -> {\\n $3\\n});'],\n \n // Optional\n ['opt', 'Optional.of', 'Optional.of($1)'],\n ['optn', 'Optional.ofNullable', 'Optional.ofNullable($1)'],\n ['opte', 'Optional.empty', 'Optional.empty()'],\n \n // 日志\n ['log', 'log.info', 'log.info(\"$1\");'],\n ['logd', 'log.debug', 'log.debug(\"$1\");'],\n ['logw', 'log.warn', 'log.warn(\"$1\");'],\n ['loge', 'log.error', 'log.error(\"$1\", $2);'],\n ['logt', 'log.trace', 'log.trace(\"$1\");'],\n ['logv', 'log变量', 'log.info(\"$1 = {}\", $1);'],\n \n // 测试\n ['test', '@Test方法', '@Test\\nvoid $1() {\\n $2\\n}'],\n ['testd', '@Test带DisplayName', '@Test\\n@DisplayName(\"$1\")\\nvoid $2() {\\n $3\\n}'],\n ['before', '@BeforeEach', '@BeforeEach\\nvoid setUp() {\\n $1\\n}'],\n ['after', '@AfterEach', '@AfterEach\\nvoid tearDown() {\\n $1\\n}'],\n ['aseq', 'assertEquals', 'assertEquals($1, $2);'],\n ['asne', 'assertNotEquals', 'assertNotEquals($1, $2);'],\n ['ast', 'assertTrue', 'assertTrue($1);'],\n ['asf', 'assertFalse', 'assertFalse($1);'],\n ['asn', 'assertNull', 'assertNull($1);'],\n ['asnn', 'assertNotNull', 'assertNotNull($1);'],\n ['asth', 'assertThrows', 'assertThrows($1.class, () -> {\\n $2\\n});'],\n \n // Lambda\n ['lam', 'lambda表达式', '($1) -> $2'],\n ['lamb', 'lambda块', '($1) -> {\\n $2\\n}'],\n ['mr', '方法引用', '$1::$2'],\n \n // 构造器\n ['ctor', '构造方法', 'public $1($2) {\\n $3\\n}'],\n ['ctord', '默认构造方法', 'public $1() {\\n}'],\n \n // getter/setter\n ['get', 'getter方法', 'public $1 get$2() {\\n return this.$3;\\n}'],\n ['set', 'setter方法', 'public void set$1($2 $3) {\\n this.$3 = $3;\\n}'],\n ['getset', 'getter和setter', 'public $1 get$2() {\\n return this.$3;\\n}\\n\\npublic void set$2($1 $3) {\\n this.$3 = $3;\\n}'],\n \n // toString/equals/hashCode\n ['tostr', 'toString方法', '@Override\\npublic String toString() {\\n return \"$1{\" +\\n \"$2=\" + $2 +\\n \\'}\\';\\n}'],\n ['eqhc', 'equals和hashCode', '@Override\\npublic boolean equals(Object o) {\\n if (this == o) return true;\\n if (o == null || getClass() != o.getClass()) return false;\\n $1 that = ($1) o;\\n return Objects.equals($2, that.$2);\\n}\\n\\n@Override\\npublic int hashCode() {\\n return Objects.hash($2);\\n}'],\n \n // 单例\n ['singleton', '单例模式', 'private static final $1 INSTANCE = new $1();\\n\\nprivate $1() {}\\n\\npublic static $1 getInstance() {\\n return INSTANCE;\\n}'],\n \n // 日期时间\n ['now', 'LocalDateTime.now', 'LocalDateTime.now()'],\n ['today', 'LocalDate.now', 'LocalDate.now()'],\n ['dtf', 'DateTimeFormatter', 'DateTimeFormatter.ofPattern(\"$1\")'],\n ];\n snippets.filter(([label]) => label.toLowerCase().startsWith(currentWord)).forEach(([label, detail, text]) => {\n suggestions.push({ \n label, \n detail, \n insertText: text, \n range, \n kind: monaco.languages.CompletionItemKind.Snippet, \n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n sortText: '1' + label, // 片段稍后显示\n });\n });\n }\n\n return { suggestions };\n },\n });\n}"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"postgresql-KYgISeDf.js","names":[],"sources":["../src/components/FormComponent/FormCodeEditor/language/postgresql.ts"],"sourcesContent":["/* !-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n// src/basic-languages/pgsql/pgsql.ts\nimport * as monaco from 'monaco-editor';\n\nconst conf: monaco.languages.LanguageConfiguration = {\n comments: {\n lineComment: '--',\n blockComment: ['/*', '*/'],\n },\n brackets: [\n ['{', '}'],\n ['[', ']'],\n ['(', ')'],\n ],\n autoClosingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n surroundingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n};\nconst language: monaco.languages.IMonarchLanguage = {\n defaultToken: '',\n tokenPostfix: '.sql',\n ignoreCase: true,\n brackets: [\n { open: '[', close: ']', token: 'delimiter.square' },\n { open: '(', close: ')', token: 'delimiter.parenthesis' },\n ],\n keywords: [\n // This list is generated using `keywords.js`\n 'ALL',\n 'ANALYSE',\n 'ANALYZE',\n 'AND',\n 'ANY',\n 'ARRAY',\n 'AS',\n 'ASC',\n 'ASYMMETRIC',\n 'AUTHORIZATION',\n 'BINARY',\n 'BOTH',\n 'CASE',\n 'CAST',\n 'CHECK',\n 'COLLATE',\n 'COLLATION',\n 'COLUMN',\n 'CONCURRENTLY',\n 'CONSTRAINT',\n 'CREATE',\n 'CROSS',\n 'CURRENT_CATALOG',\n 'CURRENT_DATE',\n 'CURRENT_ROLE',\n 'CURRENT_SCHEMA',\n 'CURRENT_TIME',\n 'CURRENT_TIMESTAMP',\n 'CURRENT_USER',\n 'DEFAULT',\n 'DEFERRABLE',\n 'DESC',\n 'DISTINCT',\n 'DO',\n 'ELSE',\n 'END',\n 'EXCEPT',\n 'FALSE',\n 'FETCH',\n 'FOR',\n 'FOREIGN',\n 'FREEZE',\n 'FROM',\n 'FULL',\n 'GRANT',\n 'GROUP',\n 'HAVING',\n 'ILIKE',\n 'IN',\n 'INITIALLY',\n 'INNER',\n 'INTERSECT',\n 'INTO',\n 'IS',\n 'ISNULL',\n 'JOIN',\n 'LATERAL',\n 'LEADING',\n 'LEFT',\n 'LIKE',\n 'LIMIT',\n 'LOCALTIME',\n 'LOCALTIMESTAMP',\n 'NATURAL',\n 'NOT',\n 'NOTNULL',\n 'NULL',\n 'OFFSET',\n 'ON',\n 'ONLY',\n 'OR',\n 'ORDER',\n 'OUTER',\n 'OVERLAPS',\n 'PLACING',\n 'PRIMARY',\n 'REFERENCES',\n 'RETURNING',\n 'RIGHT',\n 'SELECT',\n 'SESSION_USER',\n 'SIMILAR',\n 'SOME',\n 'SYMMETRIC',\n 'TABLE',\n 'TABLESAMPLE',\n 'THEN',\n 'TO',\n 'TRAILING',\n 'TRUE',\n 'UNION',\n 'UNIQUE',\n 'USER',\n 'USING',\n 'VARIADIC',\n 'VERBOSE',\n 'WHEN',\n 'WHERE',\n 'WINDOW',\n 'WITH',\n ],\n operators: [\n 'AND',\n 'BETWEEN',\n 'IN',\n 'LIKE',\n 'NOT',\n 'OR',\n 'IS',\n 'NULL',\n 'INTERSECT',\n 'UNION',\n 'INNER',\n 'JOIN',\n 'LEFT',\n 'OUTER',\n 'RIGHT',\n ],\n builtinFunctions: [\n 'abbrev',\n 'abs',\n 'acldefault',\n 'aclexplode',\n 'acos',\n 'acosd',\n 'acosh',\n 'age',\n 'any',\n 'area',\n 'array_agg',\n 'array_append',\n 'array_cat',\n 'array_dims',\n 'array_fill',\n 'array_length',\n 'array_lower',\n 'array_ndims',\n 'array_position',\n 'array_positions',\n 'array_prepend',\n 'array_remove',\n 'array_replace',\n 'array_to_json',\n 'array_to_string',\n 'array_to_tsvector',\n 'array_upper',\n 'ascii',\n 'asin',\n 'asind',\n 'asinh',\n 'atan',\n 'atan2',\n 'atan2d',\n 'atand',\n 'atanh',\n 'avg',\n 'bit',\n 'bit_and',\n 'bit_count',\n 'bit_length',\n 'bit_or',\n 'bit_xor',\n 'bool_and',\n 'bool_or',\n 'bound_box',\n 'box',\n 'brin_desummarize_range',\n 'brin_summarize_new_values',\n 'brin_summarize_range',\n 'broadcast',\n 'btrim',\n 'cardinality',\n 'cbrt',\n 'ceil',\n 'ceiling',\n 'center',\n 'char_length',\n 'character_length',\n 'chr',\n 'circle',\n 'clock_timestamp',\n 'coalesce',\n 'col_description',\n 'concat',\n 'concat_ws',\n 'convert',\n 'convert_from',\n 'convert_to',\n 'corr',\n 'cos',\n 'cosd',\n 'cosh',\n 'cot',\n 'cotd',\n 'count',\n 'covar_pop',\n 'covar_samp',\n 'cume_dist',\n 'current_catalog',\n 'current_database',\n 'current_date',\n 'current_query',\n 'current_role',\n 'current_schema',\n 'current_schemas',\n 'current_setting',\n 'current_time',\n 'current_timestamp',\n 'current_user',\n 'currval',\n 'cursor_to_xml',\n 'cursor_to_xmlschema',\n 'date_bin',\n 'date_part',\n 'date_trunc',\n 'database_to_xml',\n 'database_to_xml_and_xmlschema',\n 'database_to_xmlschema',\n 'decode',\n 'degrees',\n 'dense_rank',\n 'diagonal',\n 'diameter',\n 'div',\n 'encode',\n 'enum_first',\n 'enum_last',\n 'enum_range',\n 'every',\n 'exp',\n 'extract',\n 'factorial',\n 'family',\n 'first_value',\n 'floor',\n 'format',\n 'format_type',\n 'gcd',\n 'gen_random_uuid',\n 'generate_series',\n 'generate_subscripts',\n 'get_bit',\n 'get_byte',\n 'get_current_ts_config',\n 'gin_clean_pending_list',\n 'greatest',\n 'grouping',\n 'has_any_column_privilege',\n 'has_column_privilege',\n 'has_database_privilege',\n 'has_foreign_data_wrapper_privilege',\n 'has_function_privilege',\n 'has_language_privilege',\n 'has_schema_privilege',\n 'has_sequence_privilege',\n 'has_server_privilege',\n 'has_table_privilege',\n 'has_tablespace_privilege',\n 'has_type_privilege',\n 'height',\n 'host',\n 'hostmask',\n 'inet_client_addr',\n 'inet_client_port',\n 'inet_merge',\n 'inet_same_family',\n 'inet_server_addr',\n 'inet_server_port',\n 'initcap',\n 'isclosed',\n 'isempty',\n 'isfinite',\n 'isopen',\n 'json_agg',\n 'json_array_elements',\n 'json_array_elements_text',\n 'json_array_length',\n 'json_build_array',\n 'json_build_object',\n 'json_each',\n 'json_each_text',\n 'json_extract_path',\n 'json_extract_path_text',\n 'json_object',\n 'json_object_agg',\n 'json_object_keys',\n 'json_populate_record',\n 'json_populate_recordset',\n 'json_strip_nulls',\n 'json_to_record',\n 'json_to_recordset',\n 'json_to_tsvector',\n 'json_typeof',\n 'jsonb_agg',\n 'jsonb_array_elements',\n 'jsonb_array_elements_text',\n 'jsonb_array_length',\n 'jsonb_build_array',\n 'jsonb_build_object',\n 'jsonb_each',\n 'jsonb_each_text',\n 'jsonb_extract_path',\n 'jsonb_extract_path_text',\n 'jsonb_insert',\n 'jsonb_object',\n 'jsonb_object_agg',\n 'jsonb_object_keys',\n 'jsonb_path_exists',\n 'jsonb_path_match',\n 'jsonb_path_query',\n 'jsonb_path_query_array',\n 'jsonb_path_exists_tz',\n 'jsonb_path_query_first',\n 'jsonb_path_query_array_tz',\n 'jsonb_path_query_first_tz',\n 'jsonb_path_query_tz',\n 'jsonb_path_match_tz',\n 'jsonb_populate_record',\n 'jsonb_populate_recordset',\n 'jsonb_pretty',\n 'jsonb_set',\n 'jsonb_set_lax',\n 'jsonb_strip_nulls',\n 'jsonb_to_record',\n 'jsonb_to_recordset',\n 'jsonb_to_tsvector',\n 'jsonb_typeof',\n 'justify_days',\n 'justify_hours',\n 'justify_interval',\n 'lag',\n 'last_value',\n 'lastval',\n 'lcm',\n 'lead',\n 'least',\n 'left',\n 'length',\n 'line',\n 'ln',\n 'localtime',\n 'localtimestamp',\n 'log',\n 'log10',\n 'lower',\n 'lower_inc',\n 'lower_inf',\n 'lpad',\n 'lseg',\n 'ltrim',\n 'macaddr8_set7bit',\n 'make_date',\n 'make_interval',\n 'make_time',\n 'make_timestamp',\n 'make_timestamptz',\n 'makeaclitem',\n 'masklen',\n 'max',\n 'md5',\n 'min',\n 'min_scale',\n 'mod',\n 'mode',\n 'multirange',\n 'netmask',\n 'network',\n 'nextval',\n 'normalize',\n 'now',\n 'npoints',\n 'nth_value',\n 'ntile',\n 'nullif',\n 'num_nonnulls',\n 'num_nulls',\n 'numnode',\n 'obj_description',\n 'octet_length',\n 'overlay',\n 'parse_ident',\n 'path',\n 'pclose',\n 'percent_rank',\n 'percentile_cont',\n 'percentile_disc',\n 'pg_advisory_lock',\n 'pg_advisory_lock_shared',\n 'pg_advisory_unlock',\n 'pg_advisory_unlock_all',\n 'pg_advisory_unlock_shared',\n 'pg_advisory_xact_lock',\n 'pg_advisory_xact_lock_shared',\n 'pg_backend_pid',\n 'pg_backup_start_time',\n 'pg_blocking_pids',\n 'pg_cancel_backend',\n 'pg_client_encoding',\n 'pg_collation_actual_version',\n 'pg_collation_is_visible',\n 'pg_column_compression',\n 'pg_column_size',\n 'pg_conf_load_time',\n 'pg_control_checkpoint',\n 'pg_control_init',\n 'pg_control_recovery',\n 'pg_control_system',\n 'pg_conversion_is_visible',\n 'pg_copy_logical_replication_slot',\n 'pg_copy_physical_replication_slot',\n 'pg_create_logical_replication_slot',\n 'pg_create_physical_replication_slot',\n 'pg_create_restore_point',\n 'pg_current_logfile',\n 'pg_current_snapshot',\n 'pg_current_wal_flush_lsn',\n 'pg_current_wal_insert_lsn',\n 'pg_current_wal_lsn',\n 'pg_current_xact_id',\n 'pg_current_xact_id_if_assigned',\n 'pg_current_xlog_flush_location',\n 'pg_current_xlog_insert_location',\n 'pg_current_xlog_location',\n 'pg_database_size',\n 'pg_describe_object',\n 'pg_drop_replication_slot',\n 'pg_event_trigger_ddl_commands',\n 'pg_event_trigger_dropped_objects',\n 'pg_event_trigger_table_rewrite_oid',\n 'pg_event_trigger_table_rewrite_reason',\n 'pg_export_snapshot',\n 'pg_filenode_relation',\n 'pg_function_is_visible',\n 'pg_get_catalog_foreign_keys',\n 'pg_get_constraintdef',\n 'pg_get_expr',\n 'pg_get_function_arguments',\n 'pg_get_function_identity_arguments',\n 'pg_get_function_result',\n 'pg_get_functiondef',\n 'pg_get_indexdef',\n 'pg_get_keywords',\n 'pg_get_object_address',\n 'pg_get_owned_sequence',\n 'pg_get_ruledef',\n 'pg_get_serial_sequence',\n 'pg_get_statisticsobjdef',\n 'pg_get_triggerdef',\n 'pg_get_userbyid',\n 'pg_get_viewdef',\n 'pg_get_wal_replay_pause_state',\n 'pg_has_role',\n 'pg_identify_object',\n 'pg_identify_object_as_address',\n 'pg_import_system_collations',\n 'pg_index_column_has_property',\n 'pg_index_has_property',\n 'pg_indexam_has_property',\n 'pg_indexes_size',\n 'pg_is_in_backup',\n 'pg_is_in_recovery',\n 'pg_is_other_temp_schema',\n 'pg_is_wal_replay_paused',\n 'pg_is_xlog_replay_paused',\n 'pg_jit_available',\n 'pg_last_committed_xact',\n 'pg_last_wal_receive_lsn',\n 'pg_last_wal_replay_lsn',\n 'pg_last_xact_replay_timestamp',\n 'pg_last_xlog_receive_location',\n 'pg_last_xlog_replay_location',\n 'pg_listening_channels',\n 'pg_log_backend_memory_contexts',\n 'pg_logical_emit_message',\n 'pg_logical_slot_get_binary_changes',\n 'pg_logical_slot_get_changes',\n 'pg_logical_slot_peek_binary_changes',\n 'pg_logical_slot_peek_changes',\n 'pg_ls_archive_statusdir',\n 'pg_ls_dir',\n 'pg_ls_logdir',\n 'pg_ls_tmpdir',\n 'pg_ls_waldir',\n 'pg_mcv_list_items',\n 'pg_my_temp_schema',\n 'pg_notification_queue_usage',\n 'pg_opclass_is_visible',\n 'pg_operator_is_visible',\n 'pg_opfamily_is_visible',\n 'pg_options_to_table',\n 'pg_partition_ancestors',\n 'pg_partition_root',\n 'pg_partition_tree',\n 'pg_postmaster_start_time',\n 'pg_promote',\n 'pg_read_binary_file',\n 'pg_read_file',\n 'pg_relation_filenode',\n 'pg_relation_filepath',\n 'pg_relation_size',\n 'pg_reload_conf',\n 'pg_replication_origin_advance',\n 'pg_replication_origin_create',\n 'pg_replication_origin_drop',\n 'pg_replication_origin_oid',\n 'pg_replication_origin_progress',\n 'pg_replication_origin_session_is_setup',\n 'pg_replication_origin_session_progress',\n 'pg_replication_origin_session_reset',\n 'pg_replication_origin_session_setup',\n 'pg_replication_origin_xact_reset',\n 'pg_replication_origin_xact_setup',\n 'pg_replication_slot_advance',\n 'pg_rotate_logfile',\n 'pg_safe_snapshot_blocking_pids',\n 'pg_size_bytes',\n 'pg_size_pretty',\n 'pg_sleep',\n 'pg_sleep_for',\n 'pg_sleep_until',\n 'pg_snapshot_xip',\n 'pg_snapshot_xmax',\n 'pg_snapshot_xmin',\n 'pg_start_backup',\n 'pg_stat_file',\n 'pg_statistics_obj_is_visible',\n 'pg_stop_backup',\n 'pg_switch_wal',\n 'pg_switch_xlog',\n 'pg_table_is_visible',\n 'pg_table_size',\n 'pg_tablespace_databases',\n 'pg_tablespace_location',\n 'pg_tablespace_size',\n 'pg_terminate_backend',\n 'pg_total_relation_size',\n 'pg_trigger_depth',\n 'pg_try_advisory_lock',\n 'pg_try_advisory_lock_shared',\n 'pg_try_advisory_xact_lock',\n 'pg_try_advisory_xact_lock_shared',\n 'pg_ts_config_is_visible',\n 'pg_ts_dict_is_visible',\n 'pg_ts_parser_is_visible',\n 'pg_ts_template_is_visible',\n 'pg_type_is_visible',\n 'pg_typeof',\n 'pg_visible_in_snapshot',\n 'pg_wal_lsn_diff',\n 'pg_wal_replay_pause',\n 'pg_wal_replay_resume',\n 'pg_walfile_name',\n 'pg_walfile_name_offset',\n 'pg_xact_commit_timestamp',\n 'pg_xact_commit_timestamp_origin',\n 'pg_xact_status',\n 'pg_xlog_location_diff',\n 'pg_xlog_replay_pause',\n 'pg_xlog_replay_resume',\n 'pg_xlogfile_name',\n 'pg_xlogfile_name_offset',\n 'phraseto_tsquery',\n 'pi',\n 'plainto_tsquery',\n 'point',\n 'polygon',\n 'popen',\n 'position',\n 'power',\n 'pqserverversion',\n 'query_to_xml',\n 'query_to_xml_and_xmlschema',\n 'query_to_xmlschema',\n 'querytree',\n 'quote_ident',\n 'quote_literal',\n 'quote_nullable',\n 'radians',\n 'radius',\n 'random',\n 'range_agg',\n 'range_intersect_agg',\n 'range_merge',\n 'rank',\n 'regexp_count',\n 'regexp_instr',\n 'regexp_like',\n 'regexp_match',\n 'regexp_matches',\n 'regexp_replace',\n 'regexp_split_to_array',\n 'regexp_split_to_table',\n 'regexp_substr',\n 'regr_avgx',\n 'regr_avgy',\n 'regr_count',\n 'regr_intercept',\n 'regr_r2',\n 'regr_slope',\n 'regr_sxx',\n 'regr_sxy',\n 'regr_syy',\n 'repeat',\n 'replace',\n 'reverse',\n 'right',\n 'round',\n 'row_number',\n 'row_security_active',\n 'row_to_json',\n 'rpad',\n 'rtrim',\n 'scale',\n 'schema_to_xml',\n 'schema_to_xml_and_xmlschema',\n 'schema_to_xmlschema',\n 'session_user',\n 'set_bit',\n 'set_byte',\n 'set_config',\n 'set_masklen',\n 'setseed',\n 'setval',\n 'setweight',\n 'sha224',\n 'sha256',\n 'sha384',\n 'sha512',\n 'shobj_description',\n 'sign',\n 'sin',\n 'sind',\n 'sinh',\n 'slope',\n 'split_part',\n 'sprintf',\n 'sqrt',\n 'starts_with',\n 'statement_timestamp',\n 'stddev',\n 'stddev_pop',\n 'stddev_samp',\n 'string_agg',\n 'string_to_array',\n 'string_to_table',\n 'strip',\n 'strpos',\n 'substr',\n 'substring',\n 'sum',\n 'suppress_redundant_updates_trigger',\n 'table_to_xml',\n 'table_to_xml_and_xmlschema',\n 'table_to_xmlschema',\n 'tan',\n 'tand',\n 'tanh',\n 'text',\n 'timeofday',\n 'timezone',\n 'to_ascii',\n 'to_char',\n 'to_date',\n 'to_hex',\n 'to_json',\n 'to_number',\n 'to_regclass',\n 'to_regcollation',\n 'to_regnamespace',\n 'to_regoper',\n 'to_regoperator',\n 'to_regproc',\n 'to_regprocedure',\n 'to_regrole',\n 'to_regtype',\n 'to_timestamp',\n 'to_tsquery',\n 'to_tsvector',\n 'transaction_timestamp',\n 'translate',\n 'trim',\n 'trim_array',\n 'trim_scale',\n 'trunc',\n 'ts_debug',\n 'ts_delete',\n 'ts_filter',\n 'ts_headline',\n 'ts_lexize',\n 'ts_parse',\n 'ts_rank',\n 'ts_rank_cd',\n 'ts_rewrite',\n 'ts_stat',\n 'ts_token_type',\n 'tsquery_phrase',\n 'tsvector_to_array',\n 'tsvector_update_trigger',\n 'tsvector_update_trigger_column',\n 'txid_current',\n 'txid_current_if_assigned',\n 'txid_current_snapshot',\n 'txid_snapshot_xip',\n 'txid_snapshot_xmax',\n 'txid_snapshot_xmin',\n 'txid_status',\n 'txid_visible_in_snapshot',\n 'unistr',\n 'unnest',\n 'upper',\n 'upper_inc',\n 'upper_inf',\n 'user',\n 'var_pop',\n 'var_samp',\n 'variance',\n 'version',\n 'websearch_to_tsquery',\n 'width',\n 'width_bucket',\n 'xml_is_well_formed',\n 'xml_is_well_formed_content',\n 'xml_is_well_formed_document',\n 'xmlagg',\n 'xmlcomment',\n 'xmlconcat',\n 'xmlelement',\n 'xmlexists',\n 'xmlforest',\n 'xmlparse',\n 'xmlpi',\n 'xmlroot',\n 'xmlserialize',\n 'xpath',\n 'xpath_exists',\n ],\n builtinVariables: [\n // NOT SUPPORTED\n ],\n pseudoColumns: [\n // NOT SUPPORTED\n ],\n tokenizer: {\n root: [\n { include: '@comments' },\n { include: '@whitespace' },\n { include: '@pseudoColumns' },\n { include: '@numbers' },\n { include: '@strings' },\n { include: '@complexIdentifiers' },\n { include: '@scopes' },\n [/[;,.]/, 'delimiter'],\n [/[()]/, '@brackets'],\n [\n /[\\w@#$]+/,\n {\n cases: {\n '@operators': 'operator',\n '@builtinVariables': 'predefined',\n '@builtinFunctions': 'predefined',\n '@keywords': 'keyword',\n '@default': 'identifier',\n },\n },\n ],\n [/[<>=!%&+\\-*/|~^]/, 'operator'],\n ],\n whitespace: [[/\\s+/, 'white']],\n comments: [\n [/-{2}.*/, 'comment'],\n [/\\/\\*/, { token: 'comment.quote', next: '@comment' }],\n ],\n comment: [\n [/[^*/]+/, 'comment'],\n // Not supporting nested comments, as nested comments seem to not be standard?\n // i.e. http://stackoverflow.com/questions/728172/are-there-multiline-comment-delimiters-in-sql-that-are-vendor-agnostic\n // [/\\/\\*/, { token: 'comment.quote', next: '@push' }], // nested comment not allowed :-(\n [/\\*\\//, { token: 'comment.quote', next: '@pop' }],\n [/./, 'comment'],\n ],\n pseudoColumns: [\n [\n /\\$[A-Z_][\\w@#$]*/i,\n {\n cases: {\n '@pseudoColumns': 'predefined',\n '@default': 'identifier',\n },\n },\n ],\n ],\n numbers: [\n [/0x[0-9a-f]*/i, 'number'],\n [/\\$[+-]*\\d*(\\.\\d*)?/, 'number'],\n [/((\\d+(\\.\\d*)?)|(\\.\\d+))(e[\\-+]?\\d+)?/i, 'number'],\n ],\n strings: [[/'/, { token: 'string', next: '@string' }]],\n string: [\n [/[^']+/, 'string'],\n [/''/, 'string'],\n [/'/, { token: 'string', next: '@pop' }],\n ],\n complexIdentifiers: [\n [/\"/, { token: 'identifier.quote', next: '@quotedIdentifier' }],\n ],\n quotedIdentifier: [\n [/[^\"]+/, 'identifier'],\n [/\"\"/, 'identifier'],\n [/\"/, { token: 'identifier.quote', next: '@pop' }],\n ],\n scopes: [\n // NOT SUPPORTED\n ],\n },\n};\nexport { conf, language, registerPgsqlCompletion, definePgsqlThemes };\n\nlet pgsqlCompletionRegistered = false;\nlet pgsqlThemesDefined = false;\n\nfunction definePgsqlThemes() {\n if (pgsqlThemesDefined) return;\n pgsqlThemesDefined = true;\n\n // PostgreSQL 暗色主题\n monaco.editor.defineTheme('pgsql-dark', {\n base: 'vs-dark',\n inherit: true,\n rules: [\n { token: 'keyword', foreground: '569CD6', fontStyle: 'bold' },\n { token: 'operator', foreground: 'D4D4D4' },\n { token: 'predefined', foreground: 'DCDCAA' }, // 函数 - 黄色\n { token: 'string', foreground: 'CE9178' },\n { token: 'number', foreground: 'B5CEA8' },\n { token: 'comment', foreground: '6A9955' },\n { token: 'identifier', foreground: '9CDCFE' },\n { token: 'identifier.quote', foreground: '9CDCFE' },\n { token: 'delimiter', foreground: 'D4D4D4' },\n { token: 'type', foreground: '4EC9B0' },\n ],\n colors: {},\n });\n\n // PostgreSQL 亮色主题\n monaco.editor.defineTheme('pgsql-light', {\n base: 'vs',\n inherit: true,\n rules: [\n { token: 'keyword', foreground: '0000FF', fontStyle: 'bold' },\n { token: 'operator', foreground: '000000' },\n { token: 'predefined', foreground: '795E26' }, // 函数 - 棕黄\n { token: 'string', foreground: 'A31515' },\n { token: 'number', foreground: '098658' },\n { token: 'comment', foreground: '008000' },\n { token: 'identifier', foreground: '001080' },\n { token: 'identifier.quote', foreground: '001080' },\n { token: 'delimiter', foreground: '000000' },\n { token: 'type', foreground: '267F99' },\n ],\n colors: {},\n });\n}\n\nfunction registerPgsqlCompletion() {\n if (pgsqlCompletionRegistered) return;\n pgsqlCompletionRegistered = true;\n\n monaco.languages.registerCompletionItemProvider('pgsql', {\n triggerCharacters: [' ', '.', '('],\n provideCompletionItems: (model, position) => {\n const word = model.getWordUntilPosition(position);\n const range = {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endColumn: word.endColumn,\n };\n const currentWord = word.word.toLowerCase();\n const suggestions: monaco.languages.CompletionItem[] = [];\n\n // SQL 关键字\n if (currentWord.length >= 1) {\n const keywords: [string, string, string][] = [\n // DML\n ['SELECT', '查询', 'SELECT $1 FROM $2'],\n ['SELECT *', '查询所有列', 'SELECT * FROM $1'],\n ['SELECT DISTINCT', '去重查询', 'SELECT DISTINCT $1 FROM $2'],\n ['INSERT INTO', '插入数据', 'INSERT INTO $1 ($2) VALUES ($3)'],\n ['UPDATE', '更新数据', 'UPDATE $1 SET $2 = $3 WHERE $4'],\n ['DELETE FROM', '删除数据', 'DELETE FROM $1 WHERE $2'],\n ['TRUNCATE TABLE', '清空表', 'TRUNCATE TABLE $1'],\n \n // 子句\n ['FROM', '来源表', 'FROM $1'],\n ['WHERE', '条件', 'WHERE $1'],\n ['AND', '与', 'AND $1'],\n ['OR', '或', 'OR $1'],\n ['NOT', '非', 'NOT $1'],\n ['IN', '在...中', 'IN ($1)'],\n ['NOT IN', '不在...中', 'NOT IN ($1)'],\n ['BETWEEN', '在...之间', 'BETWEEN $1 AND $2'],\n ['LIKE', '模糊匹配', \"LIKE '%$1%'\"],\n ['ILIKE', '不区分大小写匹配', \"ILIKE '%$1%'\"],\n ['IS NULL', '为空', 'IS NULL'],\n ['IS NOT NULL', '不为空', 'IS NOT NULL'],\n ['EXISTS', '存在', 'EXISTS ($1)'],\n ['NOT EXISTS', '不存在', 'NOT EXISTS ($1)'],\n \n // 排序分组\n ['ORDER BY', '排序', 'ORDER BY $1'],\n ['ORDER BY DESC', '降序排序', 'ORDER BY $1 DESC'],\n ['GROUP BY', '分组', 'GROUP BY $1'],\n ['HAVING', '分组条件', 'HAVING $1'],\n ['LIMIT', '限制行数', 'LIMIT $1'],\n ['OFFSET', '偏移', 'OFFSET $1'],\n \n // 连接\n ['JOIN', '连接', 'JOIN $1 ON $2'],\n ['INNER JOIN', '内连接', 'INNER JOIN $1 ON $2'],\n ['LEFT JOIN', '左连接', 'LEFT JOIN $1 ON $2'],\n ['LEFT OUTER JOIN', '左外连接', 'LEFT OUTER JOIN $1 ON $2'],\n ['RIGHT JOIN', '右连接', 'RIGHT JOIN $1 ON $2'],\n ['RIGHT OUTER JOIN', '右外连接', 'RIGHT OUTER JOIN $1 ON $2'],\n ['FULL JOIN', '全连接', 'FULL JOIN $1 ON $2'],\n ['FULL OUTER JOIN', '全外连接', 'FULL OUTER JOIN $1 ON $2'],\n ['CROSS JOIN', '交叉连接', 'CROSS JOIN $1'],\n ['NATURAL JOIN', '自然连接', 'NATURAL JOIN $1'],\n ['ON', '连接条件', 'ON $1 = $2'],\n ['USING', '使用列连接', 'USING ($1)'],\n \n // 集合操作\n ['UNION', '并集', 'UNION\\nSELECT $1'],\n ['UNION ALL', '并集(含重复)', 'UNION ALL\\nSELECT $1'],\n ['INTERSECT', '交集', 'INTERSECT\\nSELECT $1'],\n ['EXCEPT', '差集', 'EXCEPT\\nSELECT $1'],\n \n // 子查询\n ['AS', '别名', 'AS $1'],\n ['WITH', 'CTE公共表表达式', 'WITH $1 AS (\\n $2\\n)\\nSELECT * FROM $1'],\n ['RECURSIVE', '递归CTE', 'WITH RECURSIVE $1 AS (\\n $2\\n UNION ALL\\n $3\\n)\\nSELECT * FROM $1'],\n \n // DDL\n ['CREATE TABLE', '创建表', 'CREATE TABLE $1 (\\n $2\\n)'],\n ['CREATE TABLE IF NOT EXISTS', '创建表(如不存在)', 'CREATE TABLE IF NOT EXISTS $1 (\\n $2\\n)'],\n ['CREATE INDEX', '创建索引', 'CREATE INDEX $1 ON $2 ($3)'],\n ['CREATE UNIQUE INDEX', '创建唯一索引', 'CREATE UNIQUE INDEX $1 ON $2 ($3)'],\n ['CREATE VIEW', '创建视图', 'CREATE VIEW $1 AS\\nSELECT $2'],\n ['CREATE OR REPLACE VIEW', '创建或替换视图', 'CREATE OR REPLACE VIEW $1 AS\\nSELECT $2'],\n ['CREATE FUNCTION', '创建函数', 'CREATE OR REPLACE FUNCTION $1($2)\\nRETURNS $3 AS $$\\nBEGIN\\n $4\\nEND;\\n$$ LANGUAGE plpgsql'],\n ['CREATE PROCEDURE', '创建存储过程', 'CREATE OR REPLACE PROCEDURE $1($2)\\nLANGUAGE plpgsql AS $$\\nBEGIN\\n $3\\nEND;\\n$$'],\n ['CREATE TRIGGER', '创建触发器', 'CREATE TRIGGER $1\\n$2 ON $3\\nFOR EACH ROW\\nEXECUTE FUNCTION $4()'],\n ['CREATE SCHEMA', '创建模式', 'CREATE SCHEMA $1'],\n ['CREATE SEQUENCE', '创建序列', 'CREATE SEQUENCE $1'],\n ['CREATE TYPE', '创建类型', 'CREATE TYPE $1 AS ($2)'],\n ['CREATE EXTENSION', '创建扩展', \"CREATE EXTENSION IF NOT EXISTS $1\"],\n \n // ALTER\n ['ALTER TABLE', '修改表', 'ALTER TABLE $1'],\n ['ADD COLUMN', '添加列', 'ADD COLUMN $1 $2'],\n ['DROP COLUMN', '删除列', 'DROP COLUMN $1'],\n ['ALTER COLUMN', '修改列', 'ALTER COLUMN $1'],\n ['RENAME TO', '重命名', 'RENAME TO $1'],\n ['RENAME COLUMN', '重命名列', 'RENAME COLUMN $1 TO $2'],\n ['SET DEFAULT', '设置默认值', 'SET DEFAULT $1'],\n ['DROP DEFAULT', '删除默认值', 'DROP DEFAULT'],\n ['SET NOT NULL', '设置非空', 'SET NOT NULL'],\n ['DROP NOT NULL', '删除非空', 'DROP NOT NULL'],\n ['ADD CONSTRAINT', '添加约束', 'ADD CONSTRAINT $1 $2'],\n ['DROP CONSTRAINT', '删除约束', 'DROP CONSTRAINT $1'],\n \n // DROP\n ['DROP TABLE', '删除表', 'DROP TABLE $1'],\n ['DROP TABLE IF EXISTS', '删除表(如存在)', 'DROP TABLE IF EXISTS $1'],\n ['DROP INDEX', '删除索引', 'DROP INDEX $1'],\n ['DROP VIEW', '删除视图', 'DROP VIEW $1'],\n ['DROP FUNCTION', '删除函数', 'DROP FUNCTION $1'],\n ['DROP SCHEMA', '删除模式', 'DROP SCHEMA $1'],\n ['DROP SEQUENCE', '删除序列', 'DROP SEQUENCE $1'],\n ['CASCADE', '级联删除', 'CASCADE'],\n ['RESTRICT', '限制删除', 'RESTRICT'],\n \n // 约束\n ['PRIMARY KEY', '主键', 'PRIMARY KEY'],\n ['FOREIGN KEY', '外键', 'FOREIGN KEY ($1) REFERENCES $2 ($3)'],\n ['REFERENCES', '引用', 'REFERENCES $1 ($2)'],\n ['UNIQUE', '唯一', 'UNIQUE'],\n ['CHECK', '检查约束', 'CHECK ($1)'],\n ['DEFAULT', '默认值', 'DEFAULT $1'],\n ['NOT NULL', '非空', 'NOT NULL'],\n ['NULL', '可空', 'NULL'],\n \n // 数据类型\n ['INTEGER', '整数', 'INTEGER'],\n ['INT', '整数', 'INT'],\n ['BIGINT', '大整数', 'BIGINT'],\n ['SMALLINT', '小整数', 'SMALLINT'],\n ['SERIAL', '自增整数', 'SERIAL'],\n ['BIGSERIAL', '大自增整数', 'BIGSERIAL'],\n ['NUMERIC', '精确数值', 'NUMERIC($1, $2)'],\n ['DECIMAL', '精确数值', 'DECIMAL($1, $2)'],\n ['REAL', '单精度浮点', 'REAL'],\n ['DOUBLE PRECISION', '双精度浮点', 'DOUBLE PRECISION'],\n ['FLOAT', '浮点数', 'FLOAT'],\n ['VARCHAR', '可变字符串', 'VARCHAR($1)'],\n ['CHAR', '定长字符串', 'CHAR($1)'],\n ['TEXT', '文本', 'TEXT'],\n ['BOOLEAN', '布尔', 'BOOLEAN'],\n ['BOOL', '布尔', 'BOOL'],\n ['DATE', '日期', 'DATE'],\n ['TIME', '时间', 'TIME'],\n ['TIMESTAMP', '时间戳', 'TIMESTAMP'],\n ['TIMESTAMPTZ', '带时区时间戳', 'TIMESTAMPTZ'],\n ['INTERVAL', '时间间隔', 'INTERVAL'],\n ['UUID', 'UUID', 'UUID'],\n ['JSON', 'JSON', 'JSON'],\n ['JSONB', 'JSONB', 'JSONB'],\n ['ARRAY', '数组', 'ARRAY'],\n ['BYTEA', '二进制', 'BYTEA'],\n ['INET', 'IP地址', 'INET'],\n ['CIDR', 'CIDR地址', 'CIDR'],\n ['MACADDR', 'MAC地址', 'MACADDR'],\n \n // 事务\n ['BEGIN', '开始事务', 'BEGIN'],\n ['COMMIT', '提交事务', 'COMMIT'],\n ['ROLLBACK', '回滚事务', 'ROLLBACK'],\n ['SAVEPOINT', '保存点', 'SAVEPOINT $1'],\n ['ROLLBACK TO', '回滚到保存点', 'ROLLBACK TO $1'],\n \n // 其他\n ['CASE', 'CASE表达式', 'CASE\\n WHEN $1 THEN $2\\n ELSE $3\\nEND'],\n ['WHEN', 'WHEN子句', 'WHEN $1 THEN $2'],\n ['THEN', 'THEN子句', 'THEN $1'],\n ['ELSE', 'ELSE子句', 'ELSE $1'],\n ['END', '结束', 'END'],\n ['COALESCE', '空值替换', 'COALESCE($1, $2)'],\n ['NULLIF', '空值比较', 'NULLIF($1, $2)'],\n ['CAST', '类型转换', 'CAST($1 AS $2)'],\n ['RETURNING', '返回', 'RETURNING $1'],\n ['ON CONFLICT', '冲突处理', 'ON CONFLICT ($1) DO $2'],\n ['DO NOTHING', '不做任何操作', 'DO NOTHING'],\n ['DO UPDATE SET', '更新', 'DO UPDATE SET $1 = $2'],\n ['EXPLAIN', '执行计划', 'EXPLAIN $1'],\n ['EXPLAIN ANALYZE', '执行计划(实际执行)', 'EXPLAIN ANALYZE $1'],\n ['VACUUM', '清理', 'VACUUM $1'],\n ['ANALYZE', '分析', 'ANALYZE $1'],\n ['GRANT', '授权', 'GRANT $1 ON $2 TO $3'],\n ['REVOKE', '撤销权限', 'REVOKE $1 ON $2 FROM $3'],\n ['COMMENT ON', '添加注释', \"COMMENT ON $1 $2 IS '$3'\"],\n ];\n keywords.filter(([label]) => label.toLowerCase().startsWith(currentWord)).forEach(([label, detail, text]) => {\n suggestions.push({\n label,\n detail,\n insertText: text,\n range,\n kind: monaco.languages.CompletionItemKind.Keyword,\n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n sortText: '0' + label,\n });\n });\n }\n\n // 常用函数\n if (currentWord.length >= 1) {\n const functions: [string, string, string][] = [\n // 聚合函数\n ['COUNT', '计数', 'COUNT($1)'],\n ['COUNT(*)', '计数所有', 'COUNT(*)'],\n ['COUNT(DISTINCT)', '去重计数', 'COUNT(DISTINCT $1)'],\n ['SUM', '求和', 'SUM($1)'],\n ['AVG', '平均值', 'AVG($1)'],\n ['MAX', '最大值', 'MAX($1)'],\n ['MIN', '最小值', 'MIN($1)'],\n ['ARRAY_AGG', '数组聚合', 'ARRAY_AGG($1)'],\n ['STRING_AGG', '字符串聚合', \"STRING_AGG($1, '$2')\"],\n ['JSON_AGG', 'JSON聚合', 'JSON_AGG($1)'],\n ['JSONB_AGG', 'JSONB聚合', 'JSONB_AGG($1)'],\n \n // 字符串函数\n ['CONCAT', '连接字符串', \"CONCAT($1, $2)\"],\n ['CONCAT_WS', '带分隔符连接', \"CONCAT_WS('$1', $2, $3)\"],\n ['LENGTH', '字符串长度', 'LENGTH($1)'],\n ['CHAR_LENGTH', '字符长度', 'CHAR_LENGTH($1)'],\n ['UPPER', '转大写', 'UPPER($1)'],\n ['LOWER', '转小写', 'LOWER($1)'],\n ['INITCAP', '首字母大写', 'INITCAP($1)'],\n ['TRIM', '去除空格', 'TRIM($1)'],\n ['LTRIM', '去除左空格', 'LTRIM($1)'],\n ['RTRIM', '去除右空格', 'RTRIM($1)'],\n ['SUBSTRING', '截取子串', 'SUBSTRING($1 FROM $2 FOR $3)'],\n ['SUBSTR', '截取子串', 'SUBSTR($1, $2, $3)'],\n ['LEFT', '左截取', 'LEFT($1, $2)'],\n ['RIGHT', '右截取', 'RIGHT($1, $2)'],\n ['REPLACE', '替换', \"REPLACE($1, '$2', '$3')\"],\n ['REGEXP_REPLACE', '正则替换', \"REGEXP_REPLACE($1, '$2', '$3')\"],\n ['SPLIT_PART', '分割取部分', \"SPLIT_PART($1, '$2', $3)\"],\n ['POSITION', '查找位置', \"POSITION('$1' IN $2)\"],\n ['STRPOS', '查找位置', \"STRPOS($1, '$2')\"],\n ['LPAD', '左填充', \"LPAD($1, $2, '$3')\"],\n ['RPAD', '右填充', \"RPAD($1, $2, '$3')\"],\n ['REPEAT', '重复', 'REPEAT($1, $2)'],\n ['REVERSE', '反转', 'REVERSE($1)'],\n ['FORMAT', '格式化', \"FORMAT('$1', $2)\"],\n \n // 数值函数\n ['ABS', '绝对值', 'ABS($1)'],\n ['CEIL', '向上取整', 'CEIL($1)'],\n ['CEILING', '向上取整', 'CEILING($1)'],\n ['FLOOR', '向下取整', 'FLOOR($1)'],\n ['ROUND', '四舍五入', 'ROUND($1, $2)'],\n ['TRUNC', '截断', 'TRUNC($1, $2)'],\n ['MOD', '取模', 'MOD($1, $2)'],\n ['POWER', '幂', 'POWER($1, $2)'],\n ['SQRT', '平方根', 'SQRT($1)'],\n ['RANDOM', '随机数', 'RANDOM()'],\n ['GREATEST', '最大值', 'GREATEST($1, $2)'],\n ['LEAST', '最小值', 'LEAST($1, $2)'],\n \n // 日期时间函数\n ['NOW', '当前时间', 'NOW()'],\n ['CURRENT_DATE', '当前日期', 'CURRENT_DATE'],\n ['CURRENT_TIME', '当前时间', 'CURRENT_TIME'],\n ['CURRENT_TIMESTAMP', '当前时间戳', 'CURRENT_TIMESTAMP'],\n ['LOCALTIMESTAMP', '本地时间戳', 'LOCALTIMESTAMP'],\n ['DATE_TRUNC', '截断日期', \"DATE_TRUNC('$1', $2)\"],\n ['DATE_PART', '提取日期部分', \"DATE_PART('$1', $2)\"],\n ['EXTRACT', '提取', \"EXTRACT($1 FROM $2)\"],\n ['AGE', '年龄/间隔', 'AGE($1, $2)'],\n ['TO_CHAR', '转字符串', \"TO_CHAR($1, '$2')\"],\n ['TO_DATE', '转日期', \"TO_DATE('$1', '$2')\"],\n ['TO_TIMESTAMP', '转时间戳', \"TO_TIMESTAMP('$1', '$2')\"],\n ['TO_NUMBER', '转数字', \"TO_NUMBER('$1', '$2')\"],\n ['MAKE_DATE', '创建日期', 'MAKE_DATE($1, $2, $3)'],\n ['MAKE_TIME', '创建时间', 'MAKE_TIME($1, $2, $3)'],\n ['MAKE_TIMESTAMP', '创建时间戳', 'MAKE_TIMESTAMP($1, $2, $3, $4, $5, $6)'],\n \n // 条件函数\n ['COALESCE', '空值替换', 'COALESCE($1, $2)'],\n ['NULLIF', '空值比较', 'NULLIF($1, $2)'],\n ['GREATEST', '最大值', 'GREATEST($1, $2, $3)'],\n ['LEAST', '最小值', 'LEAST($1, $2, $3)'],\n \n // JSON函数\n ['JSON_BUILD_OBJECT', '构建JSON对象', \"JSON_BUILD_OBJECT('$1', $2)\"],\n ['JSONB_BUILD_OBJECT', '构建JSONB对象', \"JSONB_BUILD_OBJECT('$1', $2)\"],\n ['JSON_BUILD_ARRAY', '构建JSON数组', 'JSON_BUILD_ARRAY($1)'],\n ['JSONB_BUILD_ARRAY', '构建JSONB数组', 'JSONB_BUILD_ARRAY($1)'],\n ['JSON_EXTRACT_PATH', '提取JSON路径', \"JSON_EXTRACT_PATH($1, '$2')\"],\n ['JSONB_EXTRACT_PATH', '提取JSONB路径', \"JSONB_EXTRACT_PATH($1, '$2')\"],\n ['JSON_EXTRACT_PATH_TEXT', '提取JSON路径文本', \"JSON_EXTRACT_PATH_TEXT($1, '$2')\"],\n ['JSONB_EXTRACT_PATH_TEXT', '提取JSONB路径文本', \"JSONB_EXTRACT_PATH_TEXT($1, '$2')\"],\n ['JSON_ARRAY_LENGTH', 'JSON数组长度', 'JSON_ARRAY_LENGTH($1)'],\n ['JSONB_ARRAY_LENGTH', 'JSONB数组长度', 'JSONB_ARRAY_LENGTH($1)'],\n ['JSONB_SET', '设置JSONB值', \"JSONB_SET($1, '{$2}', '$3')\"],\n ['JSONB_INSERT', '插入JSONB值', \"JSONB_INSERT($1, '{$2}', '$3')\"],\n ['JSONB_PRETTY', '格式化JSONB', 'JSONB_PRETTY($1)'],\n ['ROW_TO_JSON', '行转JSON', 'ROW_TO_JSON($1)'],\n ['TO_JSON', '转JSON', 'TO_JSON($1)'],\n ['TO_JSONB', '转JSONB', 'TO_JSONB($1)'],\n \n // 数组函数\n ['ARRAY_LENGTH', '数组长度', 'ARRAY_LENGTH($1, $2)'],\n ['ARRAY_APPEND', '数组追加', 'ARRAY_APPEND($1, $2)'],\n ['ARRAY_PREPEND', '数组前置', 'ARRAY_PREPEND($1, $2)'],\n ['ARRAY_CAT', '数组连接', 'ARRAY_CAT($1, $2)'],\n ['ARRAY_REMOVE', '数组移除', 'ARRAY_REMOVE($1, $2)'],\n ['ARRAY_REPLACE', '数组替换', 'ARRAY_REPLACE($1, $2, $3)'],\n ['ARRAY_POSITION', '数组位置', 'ARRAY_POSITION($1, $2)'],\n ['ARRAY_TO_STRING', '数组转字符串', \"ARRAY_TO_STRING($1, '$2')\"],\n ['STRING_TO_ARRAY', '字符串转数组', \"STRING_TO_ARRAY($1, '$2')\"],\n ['UNNEST', '展开数组', 'UNNEST($1)'],\n \n // 窗口函数\n ['ROW_NUMBER', '行号', 'ROW_NUMBER() OVER ($1)'],\n ['RANK', '排名', 'RANK() OVER ($1)'],\n ['DENSE_RANK', '密集排名', 'DENSE_RANK() OVER ($1)'],\n ['NTILE', '分组', 'NTILE($1) OVER ($2)'],\n ['LAG', '前一行', 'LAG($1, $2) OVER ($3)'],\n ['LEAD', '后一行', 'LEAD($1, $2) OVER ($3)'],\n ['FIRST_VALUE', '第一个值', 'FIRST_VALUE($1) OVER ($2)'],\n ['LAST_VALUE', '最后一个值', 'LAST_VALUE($1) OVER ($2)'],\n ['NTH_VALUE', '第N个值', 'NTH_VALUE($1, $2) OVER ($3)'],\n ['OVER', '窗口', 'OVER (PARTITION BY $1 ORDER BY $2)'],\n ['PARTITION BY', '分区', 'PARTITION BY $1'],\n \n // 类型转换\n ['CAST', '类型转换', 'CAST($1 AS $2)'],\n ['::INTEGER', '转整数', '::INTEGER'],\n ['::BIGINT', '转大整数', '::BIGINT'],\n ['::TEXT', '转文本', '::TEXT'],\n ['::VARCHAR', '转可变字符', '::VARCHAR'],\n ['::NUMERIC', '转数值', '::NUMERIC'],\n ['::DATE', '转日期', '::DATE'],\n ['::TIMESTAMP', '转时间戳', '::TIMESTAMP'],\n ['::BOOLEAN', '转布尔', '::BOOLEAN'],\n ['::JSON', '转JSON', '::JSON'],\n ['::JSONB', '转JSONB', '::JSONB'],\n \n // 其他\n ['GEN_RANDOM_UUID', '生成UUID', 'GEN_RANDOM_UUID()'],\n ['UUID_GENERATE_V4', '生成UUID v4', 'UUID_GENERATE_V4()'],\n ['MD5', 'MD5哈希', 'MD5($1)'],\n ['ENCODE', '编码', \"ENCODE($1, '$2')\"],\n ['DECODE', '解码', \"DECODE($1, '$2')\"],\n ['PG_TYPEOF', '获取类型', 'PG_TYPEOF($1)'],\n ['GENERATE_SERIES', '生成序列', 'GENERATE_SERIES($1, $2)'],\n ['GENERATE_SERIES date', '生成日期序列', \"GENERATE_SERIES('$1'::DATE, '$2'::DATE, '$3')\"],\n ];\n functions.filter(([label]) => label.toLowerCase().startsWith(currentWord)).forEach(([label, detail, text]) => {\n suggestions.push({\n label,\n detail,\n insertText: text,\n range,\n kind: monaco.languages.CompletionItemKind.Function,\n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n sortText: '1' + label,\n });\n });\n }\n\n return { suggestions };\n },\n });\n}\n"],"mappings":"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"}
|