瀏覽代碼

Add auto indent for xml

Sergi Philipsen 4 年之前
父節點
當前提交
a7400fc99f
共有 1 個文件被更改,包括 14 次插入1 次删除
  1. 14 1
      src/xml/xml.ts

+ 14 - 1
src/xml/xml.ts

@@ -3,7 +3,7 @@
  *  Licensed under the MIT License. See License.txt in the project root for license information.
  *  Licensed under the MIT License. See License.txt in the project root for license information.
  *--------------------------------------------------------------------------------------------*/
  *--------------------------------------------------------------------------------------------*/
 
 
-import type { languages } from '../fillers/monaco-editor-core';
+import { languages } from '../fillers/monaco-editor-core';
 
 
 export const conf: languages.LanguageConfiguration = {
 export const conf: languages.LanguageConfiguration = {
 	comments: {
 	comments: {
@@ -19,6 +19,19 @@ export const conf: languages.LanguageConfiguration = {
 		{ open: '<', close: '>' },
 		{ open: '<', close: '>' },
 		{ open: "'", close: "'" },
 		{ open: "'", close: "'" },
 		{ open: '"', close: '"' }
 		{ open: '"', close: '"' }
+	],
+	onEnterRules: [
+		{
+			beforeText: new RegExp(`<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`, 'i'),
+			afterText: /^<\/([_:\w][_:\w-.\d]*)\s*>$/i,
+			action: {
+				indentAction: languages.IndentAction.IndentOutdent
+			}
+		},
+		{
+			beforeText: new RegExp(`<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`, 'i'),
+			action: { indentAction: languages.IndentAction.Indent }
+		}
 	]
 	]
 };
 };