File size: 3,994 Bytes
55ba4a3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
ace.define(
	'ace/mode/ini_highlight_rules',
	['require', 'exports', 'module', 'ace/lib/oop', 'ace/mode/text_highlight_rules'],
	function (e, t, n) {
		'use strict'
		var r = e('../lib/oop'),
			i = e('./text_highlight_rules').TextHighlightRules,
			s = '\\\\(?:[\\\\0abtrn;#=:]|x[a-fA-F\\d]{4})',
			o = function () {
				;(this.$rules = {
					start: [
						{
							token: 'punctuation.definition.comment.ini',
							regex: '#.*',
							push_: [
								{ token: 'comment.line.number-sign.ini', regex: '$|^', next: 'pop' },
								{ defaultToken: 'comment.line.number-sign.ini' },
							],
						},
						{
							token: 'punctuation.definition.comment.ini',
							regex: ';.*',
							push_: [
								{ token: 'comment.line.semicolon.ini', regex: '$|^', next: 'pop' },
								{ defaultToken: 'comment.line.semicolon.ini' },
							],
						},
						{
							token: [
								'keyword.other.definition.ini',
								'text',
								'punctuation.separator.key-value.ini',
							],
							regex: '\\b([a-zA-Z0-9_.-]+)\\b(\\s*)(=)',
						},
						{
							token: [
								'punctuation.definition.entity.ini',
								'constant.section.group-title.ini',
								'punctuation.definition.entity.ini',
							],
							regex: '^(\\[)(.*?)(\\])',
						},
						{
							token: 'punctuation.definition.string.begin.ini',
							regex: "'",
							push: [
								{ token: 'punctuation.definition.string.end.ini', regex: "'", next: 'pop' },
								{ token: 'constant.language.escape', regex: s },
								{ defaultToken: 'string.quoted.single.ini' },
							],
						},
						{
							token: 'punctuation.definition.string.begin.ini',
							regex: '"',
							push: [
								{ token: 'constant.language.escape', regex: s },
								{ token: 'punctuation.definition.string.end.ini', regex: '"', next: 'pop' },
								{ defaultToken: 'string.quoted.double.ini' },
							],
						},
					],
				}),
					this.normalizeRules()
			}
		;(o.metaData = {
			fileTypes: ['ini', 'conf'],
			keyEquivalent: '^~I',
			name: 'Ini',
			scopeName: 'source.ini',
		}),
			r.inherits(o, i),
			(t.IniHighlightRules = o)
	}
),
	ace.define(
		'ace/mode/folding/ini',
		['require', 'exports', 'module', 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'],
		function (e, t, n) {
			'use strict'
			var r = e('../../lib/oop'),
				i = e('../../range').Range,
				s = e('./fold_mode').FoldMode,
				o = (t.FoldMode = function () {})
			r.inherits(o, s),
				function () {
					;(this.foldingStartMarker = /^\s*\[([^\])]*)]\s*(?:$|[;#])/),
						(this.getFoldWidgetRange = function (e, t, n) {
							var r = this.foldingStartMarker,
								s = e.getLine(n),
								o = s.match(r)
							if (!o) return
							var u = o[1] + '.',
								a = s.length,
								f = e.getLength(),
								l = n,
								c = n
							while (++n < f) {
								s = e.getLine(n)
								if (/^\s*$/.test(s)) continue
								o = s.match(r)
								if (o && o[1].lastIndexOf(u, 0) !== 0) break
								c = n
							}
							if (c > l) {
								var h = e.getLine(c).length
								return new i(l, a, c, h)
							}
						})
				}.call(o.prototype)
		}
	),
	ace.define(
		'ace/mode/ini',
		[
			'require',
			'exports',
			'module',
			'ace/lib/oop',
			'ace/mode/text',
			'ace/mode/ini_highlight_rules',
			'ace/mode/folding/ini',
		],
		function (e, t, n) {
			'use strict'
			var r = e('../lib/oop'),
				i = e('./text').Mode,
				s = e('./ini_highlight_rules').IniHighlightRules,
				o = e('./folding/ini').FoldMode,
				u = function () {
					;(this.HighlightRules = s),
						(this.foldingRules = new o()),
						(this.$behaviour = this.$defaultBehaviour)
				}
			r.inherits(u, i),
				function () {
					;(this.lineCommentStart = ';'), (this.blockComment = null), (this.$id = 'ace/mode/ini')
				}.call(u.prototype),
				(t.Mode = u)
		}
	)
;(function () {
	ace.require(['ace/mode/ini'], function (m) {
		if (typeof module == 'object' && typeof exports == 'object' && module) {
			module.exports = m
		}
	})
})()