├── .gitignore
├── Comments.tmPreferences
├── Kotlin.JSON-tmLanguage
├── Kotlin.sublime-build
├── Kotlin.tmLanguage
├── LICENSE
├── README.md
└── scrot.png
/.gitignore:
--------------------------------------------------------------------------------
1 | *.pyc
2 | *.cache
3 | *.sublime-project
--------------------------------------------------------------------------------
/Comments.tmPreferences:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | name
5 | Comments
6 | scope
7 | source.Kotlin
8 | settings
9 |
10 | shellVariables
11 |
12 |
13 | name
14 | TM_COMMENT_START
15 | value
16 | //
17 |
18 |
19 | name
20 | TM_COMMENT_START_2
21 | value
22 | /*
23 |
24 |
25 | name
26 | TM_COMMENT_END_2
27 | value
28 | */
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/Kotlin.JSON-tmLanguage:
--------------------------------------------------------------------------------
1 | { "name": "Kotlin",
2 | "scopeName": "source.Kotlin",
3 | "fileTypes": ["kt", "kts"],
4 | "patterns": [
5 | {
6 | "include": "#comments"
7 | },
8 | {
9 | "captures": {
10 | "1": {
11 | "name": "keyword.other.kotlin"
12 | },
13 | "2": {
14 | "name": "entity.name.package.kotlin"
15 | }
16 | },
17 | "match": "^\\s*(package)\\b(?:\\s*([^ ;$]+)\\s*)?"
18 | },
19 | {
20 | "include": "#imports"
21 | },
22 | {
23 | "include": "#statements"
24 | }
25 | ],
26 | "repository": {
27 | "statements": {
28 | "patterns": [
29 | {
30 | "include": "#namespaces"
31 | },
32 | {
33 | "include": "#typedefs"
34 | },
35 | {
36 | "include": "#classes"
37 | },
38 | {
39 | "include": "#functions"
40 | },
41 | {
42 | "include": "#variables"
43 | },
44 | {
45 | "include": "#getters-and-setters"
46 | },
47 | {
48 | "include": "#expressions"
49 | }
50 | ]
51 | },
52 | "comments": {
53 | "patterns": [
54 | {
55 | "begin": "/\\*",
56 | "captures": {
57 | "0": {
58 | "name": "punctuation.definition.comment.kotlin"
59 | }
60 | },
61 | "end": "\\*/",
62 | "name": "comment.block.kotlin"
63 | },
64 | {
65 | "captures": {
66 | "1": {
67 | "name": "comment.line.double-slash.kotlin"
68 | },
69 | "2": {
70 | "name": "punctuation.definition.comment.kotlin"
71 | }
72 | },
73 | "match": "\\s*((//).*$\\n?)"
74 | }
75 | ]
76 | },
77 | "imports": {
78 | "patterns": [
79 | {
80 | "captures": {
81 | "1": {
82 | "name": "keyword.other.kotlin"
83 | },
84 | "2": {
85 | "name": "keyword.other.kotlin"
86 | }
87 | },
88 | "match": "^\\s*(import)\\s+[^ $]+\\s+(as)?"
89 | }
90 | ]
91 | },
92 | "namespaces": {
93 | "patterns": [
94 | {
95 | "match": "\\b(namespace)\\b",
96 | "name": "keyword.other.kotlin"
97 | },
98 | {
99 | "begin": "\\{",
100 | "end": "\\}",
101 | "patterns": [
102 | {
103 | "include": "#statements"
104 | }
105 | ]
106 | }
107 | ]
108 | },
109 | "types": {
110 | "patterns": [
111 | {
112 | "match": "\\b(Nothing|Any|Unit|String|CharSequence|Int|Boolean|Char|Long|Double|Float|Short|Byte|dynamic)\\b",
113 | "name": "storage.type.buildin.kotlin"
114 | },
115 | {
116 | "match": "\\b(IntArray|BooleanArray|CharArray|LongArray|DoubleArray|FloatArray|ShortArray|ByteArray)\\b",
117 | "name": "storage.type.buildin.array.kotlin"
118 | },
119 | {
120 | "begin": "\\b(Array|Collection|List|Map|Set|MutableList|MutableMap|MutableSet|Sequence)<\\b",
121 | "beginCaptures": {
122 | "1": {
123 | "name": "storage.type.buildin.collection.kotlin"
124 | }
125 | },
126 | "end": ">",
127 | "patterns": [
128 | {
129 | "include": "#types"
130 | },
131 | {
132 | "include": "#keywords"
133 | }
134 | ]
135 | },
136 | {
137 | "begin": "\\w+<",
138 | "end": ">",
139 | "patterns": [
140 | {
141 | "include": "#types"
142 | },
143 | {
144 | "include": "#keywords"
145 | }
146 | ]
147 | },
148 | {
149 | "begin": "\\{",
150 | "end": "\\}",
151 | "patterns": [
152 | {
153 | "include": "#statements"
154 | }
155 | ]
156 | },
157 | {
158 | "begin": "\\(",
159 | "end": "\\)",
160 | "patterns": [
161 | {
162 | "include": "#types"
163 | }
164 | ]
165 | },
166 | {
167 | "match": "(->)",
168 | "name": "keyword.operator.declaration.kotlin"
169 | }
170 | ]
171 | },
172 | "generics": {
173 | "patterns": [
174 | {
175 | "begin": "(:)",
176 | "beginCaptures": {
177 | "1": {
178 | "name": "keyword.operator.declaration.kotlin"
179 | }
180 | },
181 | "end": "(?=,|>)",
182 | "patterns": [
183 | {
184 | "include": "#types"
185 | }
186 | ]
187 | },
188 | {
189 | "include": "#keywords"
190 | },
191 | {
192 | "match": "\\w+",
193 | "name": "storage.type.generic.kotlin"
194 | }
195 | ]
196 | },
197 | "typedefs": {
198 | "begin": "(?=\\s*(?:type))",
199 | "end": "(?=$)",
200 | "patterns": [
201 | {
202 | "match": "\\b(type)\\b",
203 | "name": "keyword.other.kotlin"
204 | },
205 | {
206 | "begin": "<",
207 | "end": ">",
208 | "patterns": [
209 | {
210 | "include": "#generics"
211 | }
212 | ]
213 | },
214 | {
215 | "include": "#expressions"
216 | }
217 | ]
218 | },
219 | "classes": {
220 | "begin": "(?",
250 | "patterns": [
251 | {
252 | "include": "#generics"
253 | }
254 | ]
255 | },
256 | {
257 | "begin": "\\(",
258 | "end": "\\)",
259 | "patterns": [
260 | {
261 | "include": "#parameters"
262 | }
263 | ]
264 | },
265 | {
266 | "begin": "(:)",
267 | "beginCaptures": {
268 | "1": {
269 | "name": "keyword.operator.declaration.kotlin"
270 | }
271 | },
272 | "end": "(?={|$)",
273 | "patterns": [
274 | {
275 | "match": "\\w+",
276 | "name": "entity.other.inherited-class.kotlin"
277 | },
278 | {
279 | "begin": "\\(",
280 | "end": "\\)",
281 | "patterns": [
282 | {
283 | "include": "#expressions"
284 | }
285 | ]
286 | }
287 | ]
288 | },
289 | {
290 | "begin": "\\{",
291 | "end": "\\}",
292 | "patterns": [
293 | {
294 | "include": "#statements"
295 | }
296 | ]
297 | }
298 | ]
299 | },
300 | "variables": {
301 | "begin": "(?=\\s*\\b(?:var|val)\\b)",
302 | "end": "(?=:|=|(\\b(by)\\b)|$)",
303 | "patterns": [
304 | {
305 | "begin": "\\b(var|val)\\b",
306 | "beginCaptures": {
307 | "1": {
308 | "name": "keyword.other.kotlin"
309 | }
310 | },
311 | "end": "(?=:|=|(\\b(by)\\b)|$)",
312 | "patterns": [
313 | {
314 | "begin": "<",
315 | "end": ">",
316 | "patterns": [
317 | {
318 | "include": "#generics"
319 | }
320 | ]
321 | },
322 | {
323 | "captures": {
324 | "2": {
325 | "name": "entity.name.variable.kotlin"
326 | }
327 | },
328 | "match": "([\\.<\\?>\\w]+\\.)?(\\w+)"
329 | }
330 | ]
331 | },
332 | {
333 | "begin": "(:)",
334 | "beginCaptures": {
335 | "1": {
336 | "name": "keyword.operator.declaration.kotlin"
337 | }
338 | },
339 | "end": "(?==|$)",
340 | "patterns": [
341 | {
342 | "include": "#types"
343 | },
344 | {
345 | "include": "#getters-and-setters"
346 | }
347 | ]
348 | },
349 | {
350 | "begin": "\\b(by)\\b",
351 | "beginCaptures": {
352 | "1": {
353 | "name": "keyword.other.kotlin"
354 | }
355 | },
356 | "end": "(?=$)",
357 | "patterns": [
358 | {
359 | "include": "#expressions"
360 | }
361 | ]
362 | },
363 | {
364 | "begin": "(=)",
365 | "beginCaptures": {
366 | "1": {
367 | "name": "keyword.operator.assignment.kotlin"
368 | }
369 | },
370 | "end": "(?=$)",
371 | "patterns": [
372 | {
373 | "include": "#expressions"
374 | },
375 | {
376 | "include": "#getters-and-setters"
377 | }
378 | ]
379 | }
380 | ]
381 | },
382 | "getters-and-setters": {
383 | "patterns": [
384 | {
385 | "begin": "\\b(get)\\b\\s*\\(\\s*\\)",
386 | "beginCaptures": {
387 | "1": {
388 | "name": "entity.name.function.kotlin"
389 | }
390 | },
391 | "end": "\\}|(?=\\bset\\b)|$",
392 | "patterns": [
393 | {
394 | "begin": "(=)",
395 | "beginCaptures": {
396 | "1": {
397 | "name": "keyword.operator.assignment.kotlin"
398 | }
399 | },
400 | "end": "(?=$|\\bset\\b)",
401 | "patterns": [
402 | {
403 | "include": "#expressions"
404 | }
405 | ]
406 | },
407 | {
408 | "begin": "\\{",
409 | "end": "\\}",
410 | "patterns": [
411 | {
412 | "include": "#expressions"
413 | }
414 | ]
415 | }
416 | ]
417 | },
418 | {
419 | "begin": "\\b(set)\\b\\s*(?=\\()",
420 | "beginCaptures": {
421 | "1": {
422 | "name": "entity.name.function.kotlin"
423 | }
424 | },
425 | "end": "\\}|(?=\\bget\\b)|$",
426 | "patterns": [
427 | {
428 | "begin": "\\(",
429 | "end": "\\)",
430 | "patterns": [
431 | {
432 | "include": "#parameters"
433 | }
434 | ]
435 | },
436 | {
437 | "begin": "(=)",
438 | "beginCaptures": {
439 | "1": {
440 | "name": "keyword.operator.assignment.kotlin"
441 | }
442 | },
443 | "end": "(?=$|\\bset\\b)",
444 | "patterns": [
445 | {
446 | "include": "#expressions"
447 | }
448 | ]
449 | },
450 | {
451 | "begin": "\\{",
452 | "end": "\\}",
453 | "patterns": [
454 | {
455 | "include": "#expressions"
456 | }
457 | ]
458 | }
459 | ]
460 | }
461 | ]
462 | },
463 | "functions": {
464 | "begin": "(?=\\s*\\b(?:fun)\\b)",
465 | "end": "(?=$|\\})",
466 | "patterns": [
467 | {
468 | "begin": "\\b(fun)\\b",
469 | "beginCaptures": {
470 | "1": {
471 | "name": "keyword.other.kotlin"
472 | }
473 | },
474 | "end": "(?=\\()",
475 | "patterns": [
476 | {
477 | "begin": "<",
478 | "end": ">",
479 | "patterns": [
480 | {
481 | "include": "#generics"
482 | }
483 | ]
484 | },
485 | {
486 | "captures": {
487 | "2": {
488 | "name": "entity.name.function.kotlin"
489 | }
490 | },
491 | "match": "([\\.<\\?>\\w]+\\.)?(\\w+)"
492 | }
493 | ]
494 | },
495 | {
496 | "begin": "\\(",
497 | "end": "\\)",
498 | "patterns": [
499 | {
500 | "include": "#parameters"
501 | }
502 | ]
503 | },
504 | {
505 | "begin": "(:)",
506 | "beginCaptures": {
507 | "1": {
508 | "name": "keyword.operator.declaration.kotlin"
509 | }
510 | },
511 | "end": "(?={|=|$)",
512 | "patterns": [
513 | {
514 | "include": "#types"
515 | }
516 | ]
517 | },
518 | {
519 | "begin": "\\{",
520 | "end": "(?=\\})",
521 | "patterns": [
522 | {
523 | "include": "#statements"
524 | }
525 | ]
526 | },
527 | {
528 | "begin": "(=)",
529 | "beginCaptures": {
530 | "1": {
531 | "name": "keyword.operator.assignment.kotlin"
532 | }
533 | },
534 | "end": "(?=$)",
535 | "patterns": [
536 | {
537 | "include": "#expressions"
538 | }
539 | ]
540 | }
541 | ]
542 | },
543 | "parameters": {
544 | "patterns": [
545 | {
546 | "begin": "(:)",
547 | "beginCaptures": {
548 | "1": {
549 | "name": "keyword.operator.declaration.kotlin"
550 | }
551 | },
552 | "end": "(?=,|\\)|=)",
553 | "patterns": [
554 | {
555 | "include": "#types"
556 | }
557 | ]
558 | },
559 | {
560 | "begin": "(=)",
561 | "beginCaptures": {
562 | "1": {
563 | "name": "keyword.operator.declaration.kotlin"
564 | }
565 | },
566 | "end": "(?=,|\\))",
567 | "patterns": [
568 | {
569 | "include" : "#expressions"
570 | }
571 | ]
572 | },
573 | {
574 | "include": "#keywords"
575 | },
576 | {
577 | "match": "\\w+",
578 | "name": "variable.parameter.function.kotlin"
579 | }
580 | ]
581 | },
582 | "expressions": {
583 | "patterns": [
584 | {
585 | "begin": "\\(",
586 | "end": "\\)",
587 | "patterns": [
588 | {
589 | "include": "#expressions"
590 | }
591 | ]
592 | },
593 | {
594 | "include": "#types"
595 | },
596 | {
597 | "include": "#strings"
598 | },
599 | {
600 | "include": "#constants"
601 | },
602 | {
603 | "include": "#comments"
604 | },
605 | {
606 | "include": "#keywords"
607 | }
608 | ]
609 | },
610 | "strings": {
611 | "patterns": [
612 | {
613 | "begin": "\"\"\"",
614 | "beginCaptures": {
615 | "0": {
616 | "name": "punctuation.definition.string.begin.kotlin"
617 | }
618 | },
619 | "end": "\"\"\"",
620 | "endCaptures": {
621 | "0": {
622 | "name": "punctuation.definition.string.end.kotlin"
623 | }
624 | },
625 | "name": "string.quoted.third.kotlin",
626 | "patterns": [
627 | {
628 | "match": "(\\$\\w+|\\$\\{[^\\}]+\\})",
629 | "name": "variable.parameter.template.kotlin"
630 | },
631 | {
632 | "match": "\\\\.",
633 | "name": "constant.character.escape.kotlin"
634 | }
635 | ]
636 | },
637 | {
638 | "begin": "\"",
639 | "beginCaptures": {
640 | "0": {
641 | "name": "punctuation.definition.string.begin.kotlin"
642 | }
643 | },
644 | "end": "\"",
645 | "endCaptures": {
646 | "0": {
647 | "name": "punctuation.definition.string.end.kotlin"
648 | }
649 | },
650 | "name": "string.quoted.double.kotlin",
651 | "patterns": [
652 | {
653 | "match": "(\\$\\w+|\\$\\{[^\\}]+\\})",
654 | "name": "variable.parameter.template.kotlin"
655 | },
656 | {
657 | "match": "\\\\.",
658 | "name": "constant.character.escape.kotlin"
659 | }
660 | ]
661 | },
662 | {
663 | "begin": "'",
664 | "beginCaptures": {
665 | "0": {
666 | "name": "punctuation.definition.string.begin.kotlin"
667 | }
668 | },
669 | "end": "'",
670 | "endCaptures": {
671 | "0": {
672 | "name": "punctuation.definition.string.end.kotlin"
673 | }
674 | },
675 | "name": "string.quoted.single.kotlin",
676 | "patterns": [
677 | {
678 | "match": "\\\\.",
679 | "name": "constant.character.escape.kotlin"
680 | }
681 | ]
682 | },
683 | {
684 | "begin": "`",
685 | "beginCaptures": {
686 | "0": {
687 | "name": "punctuation.definition.string.begin.kotlin"
688 | }
689 | },
690 | "end": "`",
691 | "endCaptures": {
692 | "0": {
693 | "name": "punctuation.definition.string.end.kotlin"
694 | }
695 | },
696 | "name": "string.quoted.single.kotlin"
697 | }
698 | ]
699 | },
700 | "constants": {
701 | "patterns": [
702 | {
703 | "match": "\\b(true|false|null|this|super)\\b",
704 | "name": "constant.language.kotlin"
705 | },
706 | {
707 | "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFf])?\\b",
708 | "name": "constant.numeric.kotlin"
709 | },
710 | {
711 | "match": "\\b([A-Z][A-Z0-9_]+)\\b",
712 | "name": "constant.other.kotlin"
713 | }
714 | ]
715 | },
716 | "keywords": {
717 | "patterns": [
718 | {
719 | "match": "\\b(var|val|public|private|protected|abstract|final|sealed|enum|open|attribute|annotation|override|inline|vararg|in|out|internal|data|tailrec|operator|infix|const|yield|typealias|typeof|reified|suspend)\\b",
720 | "name": "storage.modifier.kotlin"
721 | },
722 | {
723 | "match": "\\b(try|catch|finally|throw)\\b",
724 | "name": "keyword.control.catch-exception.kotlin"
725 | },
726 | {
727 | "match": "\\b(if|else|while|for|do|return|when|where|break|continue)\\b",
728 | "name": "keyword.control.kotlin"
729 | },
730 | {
731 | "match": "\\b(in|is|!in|!is|as|as\\?|assert)\\b",
732 | "name": "keyword.operator.kotlin"
733 | },
734 | {
735 | "match": "(==|!=|===|!==|<=|>=|<|>)",
736 | "name": "keyword.operator.comparison.kotlin"
737 | },
738 | {
739 | "match": "(=)",
740 | "name": "keyword.operator.assignment.kotlin"
741 | },
742 | {
743 | "match": "(::)",
744 | "name": "keyword.operator.kotlin"
745 | },
746 | {
747 | "match": "(:)",
748 | "name": "keyword.operator.declaration.kotlin"
749 | },
750 | {
751 | "match": "\\b(by)\\b",
752 | "name": "keyword.other.by.kotlin"
753 | },
754 | {
755 | "match": "(\\?\\.)",
756 | "name": "keyword.operator.safenav.kotlin"
757 | },
758 | {
759 | "match": "(\\.)",
760 | "name": "keyword.operator.dot.kotlin"
761 | },
762 | {
763 | "match": "(\\?:)",
764 | "name": "keyword.operator.elvis.kotlin"
765 | },
766 | {
767 | "match": "(\\-\\-|\\+\\+)",
768 | "name": "keyword.operator.increment-decrement.kotlin"
769 | },
770 | {
771 | "match": "(\\+=|\\-=|\\*=|\\/=)",
772 | "name": "keyword.operator.arithmetic.assign.kotlin"
773 | },
774 | {
775 | "match": "(\\.\\.)",
776 | "name": "keyword.operator.range.kotlin"
777 | },
778 | {
779 | "match": "(\\-|\\+|\\*|\\/|%)",
780 | "name": "keyword.operator.arithmetic.kotlin"
781 | },
782 | {
783 | "match": "(!|&&|\\|\\|)",
784 | "name": "keyword.operator.logical.kotlin"
785 | },
786 | {
787 | "match": "(;)",
788 | "name": "punctuation.terminator.kotlin"
789 | }
790 | ]
791 | }
792 | },
793 | "uuid": "d508c059-a938-4779-b2bc-ff43a5078907"
794 | }
795 |
--------------------------------------------------------------------------------
/Kotlin.sublime-build:
--------------------------------------------------------------------------------
1 | {
2 | "path" : "/usr/local/bin:$PATH",
3 | "selector" : "source.Kotlin",
4 | "file_regex": "^(.*):([0-9]+):([0-9]+): (?:error|warning):(.*)",
5 | "cmd" : "kotlinc \"${file}\" -include-runtime -d ${file_base_name}.jar",
6 | "variants": [{
7 | "cmd": "kotlinc \"${file}\" -include-runtime -d ${file_base_name}.jar",
8 | "name": "Compile"
9 | },{
10 | "cmd": "kotlinc \"${file}\" -include-runtime -d ${file_base_name}.jar || exit 1; java -jar ${file_base_name}.jar",
11 | "name": "Compile + run"
12 | },{
13 | "name": "Run",
14 | "cmd": "java -jar ${file_base_name}.jar"
15 | }],
16 | "shell" : "true",
17 | "windows" : {
18 | "path" : "$PATH"
19 | }
20 | }
--------------------------------------------------------------------------------
/Kotlin.tmLanguage:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | fileTypes
6 |
7 | kt
8 | kts
9 |
10 | name
11 | Kotlin
12 | patterns
13 |
14 |
15 | include
16 | #comments
17 |
18 |
19 | captures
20 |
21 | 1
22 |
23 | name
24 | keyword.other.kotlin
25 |
26 | 2
27 |
28 | name
29 | entity.name.package.kotlin
30 |
31 |
32 | match
33 | ^\s*(package)\b(?:\s*([^ ;$]+)\s*)?
34 |
35 |
36 | include
37 | #imports
38 |
39 |
40 | include
41 | #statements
42 |
43 |
44 | repository
45 |
46 | classes
47 |
48 | begin
49 | (?<!::)(?=\b(?:companion|class|object|interface)\b)
50 | end
51 | (?=$|\})
52 | patterns
53 |
54 |
55 | include
56 | #comments
57 |
58 |
59 | begin
60 | \b(companion\s*)?(class|object|interface)\b
61 | beginCaptures
62 |
63 | 1
64 |
65 | name
66 | storage.modifier.kotlin
67 |
68 | 2
69 |
70 | name
71 | storage.modifier.kotlin
72 |
73 |
74 | end
75 | (?=<|\{|\(|:|$)
76 | patterns
77 |
78 |
79 | include
80 | #comments
81 |
82 |
83 | match
84 | \w+
85 | name
86 | entity.name.type.class.kotlin
87 |
88 |
89 |
90 |
91 | begin
92 | <
93 | end
94 | >
95 | patterns
96 |
97 |
98 | include
99 | #generics
100 |
101 |
102 |
103 |
104 | begin
105 | \(
106 | end
107 | \)
108 | patterns
109 |
110 |
111 | include
112 | #parameters
113 |
114 |
115 |
116 |
117 | begin
118 | (:)
119 | beginCaptures
120 |
121 | 1
122 |
123 | name
124 | keyword.operator.declaration.kotlin
125 |
126 |
127 | end
128 | (?={|$)
129 | patterns
130 |
131 |
132 | match
133 | \w+
134 | name
135 | entity.other.inherited-class.kotlin
136 |
137 |
138 | begin
139 | \(
140 | end
141 | \)
142 | patterns
143 |
144 |
145 | include
146 | #expressions
147 |
148 |
149 |
150 |
151 |
152 |
153 | begin
154 | \{
155 | end
156 | \}
157 | patterns
158 |
159 |
160 | include
161 | #statements
162 |
163 |
164 |
165 |
166 |
167 | comments
168 |
169 | patterns
170 |
171 |
172 | begin
173 | /\*
174 | captures
175 |
176 | 0
177 |
178 | name
179 | punctuation.definition.comment.kotlin
180 |
181 |
182 | end
183 | \*/
184 | name
185 | comment.block.kotlin
186 |
187 |
188 | captures
189 |
190 | 1
191 |
192 | name
193 | comment.line.double-slash.kotlin
194 |
195 | 2
196 |
197 | name
198 | punctuation.definition.comment.kotlin
199 |
200 |
201 | match
202 | \s*((//).*$\n?)
203 |
204 |
205 |
206 | constants
207 |
208 | patterns
209 |
210 |
211 | match
212 | \b(true|false|null|this|super)\b
213 | name
214 | constant.language.kotlin
215 |
216 |
217 | match
218 | \b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)([LlFf])?\b
219 | name
220 | constant.numeric.kotlin
221 |
222 |
223 | match
224 | \b([A-Z][A-Z0-9_]+)\b
225 | name
226 | constant.other.kotlin
227 |
228 |
229 |
230 | expressions
231 |
232 | patterns
233 |
234 |
235 | begin
236 | \(
237 | end
238 | \)
239 | patterns
240 |
241 |
242 | include
243 | #expressions
244 |
245 |
246 |
247 |
248 | include
249 | #types
250 |
251 |
252 | include
253 | #strings
254 |
255 |
256 | include
257 | #constants
258 |
259 |
260 | include
261 | #comments
262 |
263 |
264 | include
265 | #keywords
266 |
267 |
268 |
269 | functions
270 |
271 | begin
272 | (?=\s*\b(?:fun)\b)
273 | end
274 | (?=$|\})
275 | patterns
276 |
277 |
278 | begin
279 | \b(fun)\b
280 | beginCaptures
281 |
282 | 1
283 |
284 | name
285 | keyword.other.kotlin
286 |
287 |
288 | end
289 | (?=\()
290 | patterns
291 |
292 |
293 | begin
294 | <
295 | end
296 | >
297 | patterns
298 |
299 |
300 | include
301 | #generics
302 |
303 |
304 |
305 |
306 | captures
307 |
308 | 2
309 |
310 | name
311 | entity.name.function.kotlin
312 |
313 |
314 | match
315 | ([\.<\?>\w]+\.)?(\w+)
316 |
317 |
318 |
319 |
320 | begin
321 | \(
322 | end
323 | \)
324 | patterns
325 |
326 |
327 | include
328 | #parameters
329 |
330 |
331 |
332 |
333 | begin
334 | (:)
335 | beginCaptures
336 |
337 | 1
338 |
339 | name
340 | keyword.operator.declaration.kotlin
341 |
342 |
343 | end
344 | (?={|=|$)
345 | patterns
346 |
347 |
348 | include
349 | #types
350 |
351 |
352 |
353 |
354 | begin
355 | \{
356 | end
357 | (?=\})
358 | patterns
359 |
360 |
361 | include
362 | #statements
363 |
364 |
365 |
366 |
367 | begin
368 | (=)
369 | beginCaptures
370 |
371 | 1
372 |
373 | name
374 | keyword.operator.assignment.kotlin
375 |
376 |
377 | end
378 | (?=$)
379 | patterns
380 |
381 |
382 | include
383 | #expressions
384 |
385 |
386 |
387 |
388 |
389 | generics
390 |
391 | patterns
392 |
393 |
394 | begin
395 | (:)
396 | beginCaptures
397 |
398 | 1
399 |
400 | name
401 | keyword.operator.declaration.kotlin
402 |
403 |
404 | end
405 | (?=,|>)
406 | patterns
407 |
408 |
409 | include
410 | #types
411 |
412 |
413 |
414 |
415 | include
416 | #keywords
417 |
418 |
419 | match
420 | \w+
421 | name
422 | storage.type.generic.kotlin
423 |
424 |
425 |
426 | getters-and-setters
427 |
428 | patterns
429 |
430 |
431 | begin
432 | \b(get)\b\s*\(\s*\)
433 | beginCaptures
434 |
435 | 1
436 |
437 | name
438 | entity.name.function.kotlin
439 |
440 |
441 | end
442 | \}|(?=\bset\b)|$
443 | patterns
444 |
445 |
446 | begin
447 | (=)
448 | beginCaptures
449 |
450 | 1
451 |
452 | name
453 | keyword.operator.assignment.kotlin
454 |
455 |
456 | end
457 | (?=$|\bset\b)
458 | patterns
459 |
460 |
461 | include
462 | #expressions
463 |
464 |
465 |
466 |
467 | begin
468 | \{
469 | end
470 | \}
471 | patterns
472 |
473 |
474 | include
475 | #expressions
476 |
477 |
478 |
479 |
480 |
481 |
482 | begin
483 | \b(set)\b\s*(?=\()
484 | beginCaptures
485 |
486 | 1
487 |
488 | name
489 | entity.name.function.kotlin
490 |
491 |
492 | end
493 | \}|(?=\bget\b)|$
494 | patterns
495 |
496 |
497 | begin
498 | \(
499 | end
500 | \)
501 | patterns
502 |
503 |
504 | include
505 | #parameters
506 |
507 |
508 |
509 |
510 | begin
511 | (=)
512 | beginCaptures
513 |
514 | 1
515 |
516 | name
517 | keyword.operator.assignment.kotlin
518 |
519 |
520 | end
521 | (?=$|\bset\b)
522 | patterns
523 |
524 |
525 | include
526 | #expressions
527 |
528 |
529 |
530 |
531 | begin
532 | \{
533 | end
534 | \}
535 | patterns
536 |
537 |
538 | include
539 | #expressions
540 |
541 |
542 |
543 |
544 |
545 |
546 |
547 | imports
548 |
549 | patterns
550 |
551 |
552 | captures
553 |
554 | 1
555 |
556 | name
557 | keyword.other.kotlin
558 |
559 | 2
560 |
561 | name
562 | keyword.other.kotlin
563 |
564 |
565 | match
566 | ^\s*(import)\s+[^ $]+\s+(as)?
567 |
568 |
569 |
570 | keywords
571 |
572 | patterns
573 |
574 |
575 | match
576 | \b(var|val|public|private|protected|abstract|final|sealed|enum|open|attribute|annotation|override|inline|vararg|in|out|internal|data|tailrec|operator|infix|const|yield|typealias|typeof|reified|suspend)\b
577 | name
578 | storage.modifier.kotlin
579 |
580 |
581 | match
582 | \b(try|catch|finally|throw)\b
583 | name
584 | keyword.control.catch-exception.kotlin
585 |
586 |
587 | match
588 | \b(if|else|while|for|do|return|when|where|break|continue)\b
589 | name
590 | keyword.control.kotlin
591 |
592 |
593 | match
594 | \b(in|is|!in|!is|as|as\?|assert)\b
595 | name
596 | keyword.operator.kotlin
597 |
598 |
599 | match
600 | (==|!=|===|!==|<=|>=|<|>)
601 | name
602 | keyword.operator.comparison.kotlin
603 |
604 |
605 | match
606 | (=)
607 | name
608 | keyword.operator.assignment.kotlin
609 |
610 |
611 | match
612 | (::)
613 | name
614 | keyword.operator.kotlin
615 |
616 |
617 | match
618 | (:)
619 | name
620 | keyword.operator.declaration.kotlin
621 |
622 |
623 | match
624 | \b(by)\b
625 | name
626 | keyword.other.by.kotlin
627 |
628 |
629 | match
630 | (\?\.)
631 | name
632 | keyword.operator.safenav.kotlin
633 |
634 |
635 | match
636 | (\.)
637 | name
638 | keyword.operator.dot.kotlin
639 |
640 |
641 | match
642 | (\?:)
643 | name
644 | keyword.operator.elvis.kotlin
645 |
646 |
647 | match
648 | (\-\-|\+\+)
649 | name
650 | keyword.operator.increment-decrement.kotlin
651 |
652 |
653 | match
654 | (\+=|\-=|\*=|\/=)
655 | name
656 | keyword.operator.arithmetic.assign.kotlin
657 |
658 |
659 | match
660 | (\.\.)
661 | name
662 | keyword.operator.range.kotlin
663 |
664 |
665 | match
666 | (\-|\+|\*|\/|%)
667 | name
668 | keyword.operator.arithmetic.kotlin
669 |
670 |
671 | match
672 | (!|&&|\|\|)
673 | name
674 | keyword.operator.logical.kotlin
675 |
676 |
677 | match
678 | (;)
679 | name
680 | punctuation.terminator.kotlin
681 |
682 |
683 |
684 | namespaces
685 |
686 | patterns
687 |
688 |
689 | match
690 | \b(namespace)\b
691 | name
692 | keyword.other.kotlin
693 |
694 |
695 | begin
696 | \{
697 | end
698 | \}
699 | patterns
700 |
701 |
702 | include
703 | #statements
704 |
705 |
706 |
707 |
708 |
709 | parameters
710 |
711 | patterns
712 |
713 |
714 | begin
715 | (:)
716 | beginCaptures
717 |
718 | 1
719 |
720 | name
721 | keyword.operator.declaration.kotlin
722 |
723 |
724 | end
725 | (?=,|\)|=)
726 | patterns
727 |
728 |
729 | include
730 | #types
731 |
732 |
733 |
734 |
735 | begin
736 | (=)
737 | beginCaptures
738 |
739 | 1
740 |
741 | name
742 | keyword.operator.declaration.kotlin
743 |
744 |
745 | end
746 | (?=,|\))
747 | patterns
748 |
749 |
750 | include
751 | #expressions
752 |
753 |
754 |
755 |
756 | include
757 | #keywords
758 |
759 |
760 | match
761 | \w+
762 | name
763 | variable.parameter.function.kotlin
764 |
765 |
766 |
767 | statements
768 |
769 | patterns
770 |
771 |
772 | include
773 | #namespaces
774 |
775 |
776 | include
777 | #typedefs
778 |
779 |
780 | include
781 | #classes
782 |
783 |
784 | include
785 | #functions
786 |
787 |
788 | include
789 | #variables
790 |
791 |
792 | include
793 | #getters-and-setters
794 |
795 |
796 | include
797 | #expressions
798 |
799 |
800 |
801 | strings
802 |
803 | patterns
804 |
805 |
806 | begin
807 | """
808 | beginCaptures
809 |
810 | 0
811 |
812 | name
813 | punctuation.definition.string.begin.kotlin
814 |
815 |
816 | end
817 | """
818 | endCaptures
819 |
820 | 0
821 |
822 | name
823 | punctuation.definition.string.end.kotlin
824 |
825 |
826 | name
827 | string.quoted.third.kotlin
828 | patterns
829 |
830 |
831 | match
832 | (\$\w+|\$\{[^\}]+\})
833 | name
834 | variable.parameter.template.kotlin
835 |
836 |
837 | match
838 | \\.
839 | name
840 | constant.character.escape.kotlin
841 |
842 |
843 |
844 |
845 | begin
846 | "
847 | beginCaptures
848 |
849 | 0
850 |
851 | name
852 | punctuation.definition.string.begin.kotlin
853 |
854 |
855 | end
856 | "
857 | endCaptures
858 |
859 | 0
860 |
861 | name
862 | punctuation.definition.string.end.kotlin
863 |
864 |
865 | name
866 | string.quoted.double.kotlin
867 | patterns
868 |
869 |
870 | match
871 | (\$\w+|\$\{[^\}]+\})
872 | name
873 | variable.parameter.template.kotlin
874 |
875 |
876 | match
877 | \\.
878 | name
879 | constant.character.escape.kotlin
880 |
881 |
882 |
883 |
884 | begin
885 | '
886 | beginCaptures
887 |
888 | 0
889 |
890 | name
891 | punctuation.definition.string.begin.kotlin
892 |
893 |
894 | end
895 | '
896 | endCaptures
897 |
898 | 0
899 |
900 | name
901 | punctuation.definition.string.end.kotlin
902 |
903 |
904 | name
905 | string.quoted.single.kotlin
906 | patterns
907 |
908 |
909 | match
910 | \\.
911 | name
912 | constant.character.escape.kotlin
913 |
914 |
915 |
916 |
917 | begin
918 | `
919 | beginCaptures
920 |
921 | 0
922 |
923 | name
924 | punctuation.definition.string.begin.kotlin
925 |
926 |
927 | end
928 | `
929 | endCaptures
930 |
931 | 0
932 |
933 | name
934 | punctuation.definition.string.end.kotlin
935 |
936 |
937 | name
938 | string.quoted.single.kotlin
939 |
940 |
941 |
942 | typedefs
943 |
944 | begin
945 | (?=\s*(?:type))
946 | end
947 | (?=$)
948 | patterns
949 |
950 |
951 | match
952 | \b(type)\b
953 | name
954 | keyword.other.kotlin
955 |
956 |
957 | begin
958 | <
959 | end
960 | >
961 | patterns
962 |
963 |
964 | include
965 | #generics
966 |
967 |
968 |
969 |
970 | include
971 | #expressions
972 |
973 |
974 |
975 | types
976 |
977 | patterns
978 |
979 |
980 | match
981 | \b(Nothing|Any|Unit|String|CharSequence|Int|Boolean|Char|Long|Double|Float|Short|Byte|dynamic)\b
982 | name
983 | storage.type.buildin.kotlin
984 |
985 |
986 | match
987 | \b(IntArray|BooleanArray|CharArray|LongArray|DoubleArray|FloatArray|ShortArray|ByteArray)\b
988 | name
989 | storage.type.buildin.array.kotlin
990 |
991 |
992 | begin
993 | \b(Array|Collection|List|Map|Set|MutableList|MutableMap|MutableSet|Sequence)<\b
994 | beginCaptures
995 |
996 | 1
997 |
998 | name
999 | storage.type.buildin.collection.kotlin
1000 |
1001 |
1002 | end
1003 | >
1004 | patterns
1005 |
1006 |
1007 | include
1008 | #types
1009 |
1010 |
1011 | include
1012 | #keywords
1013 |
1014 |
1015 |
1016 |
1017 | begin
1018 | \w+<
1019 | end
1020 | >
1021 | patterns
1022 |
1023 |
1024 | include
1025 | #types
1026 |
1027 |
1028 | include
1029 | #keywords
1030 |
1031 |
1032 |
1033 |
1034 | begin
1035 | \{
1036 | end
1037 | \}
1038 | patterns
1039 |
1040 |
1041 | include
1042 | #statements
1043 |
1044 |
1045 |
1046 |
1047 | begin
1048 | \(
1049 | end
1050 | \)
1051 | patterns
1052 |
1053 |
1054 | include
1055 | #types
1056 |
1057 |
1058 |
1059 |
1060 | match
1061 | (->)
1062 | name
1063 | keyword.operator.declaration.kotlin
1064 |
1065 |
1066 |
1067 | variables
1068 |
1069 | begin
1070 | (?=\s*\b(?:var|val)\b)
1071 | end
1072 | (?=:|=|(\b(by)\b)|$)
1073 | patterns
1074 |
1075 |
1076 | begin
1077 | \b(var|val)\b
1078 | beginCaptures
1079 |
1080 | 1
1081 |
1082 | name
1083 | keyword.other.kotlin
1084 |
1085 |
1086 | end
1087 | (?=:|=|(\b(by)\b)|$)
1088 | patterns
1089 |
1090 |
1091 | begin
1092 | <
1093 | end
1094 | >
1095 | patterns
1096 |
1097 |
1098 | include
1099 | #generics
1100 |
1101 |
1102 |
1103 |
1104 | captures
1105 |
1106 | 2
1107 |
1108 | name
1109 | entity.name.variable.kotlin
1110 |
1111 |
1112 | match
1113 | ([\.<\?>\w]+\.)?(\w+)
1114 |
1115 |
1116 |
1117 |
1118 | begin
1119 | (:)
1120 | beginCaptures
1121 |
1122 | 1
1123 |
1124 | name
1125 | keyword.operator.declaration.kotlin
1126 |
1127 |
1128 | end
1129 | (?==|$)
1130 | patterns
1131 |
1132 |
1133 | include
1134 | #types
1135 |
1136 |
1137 | include
1138 | #getters-and-setters
1139 |
1140 |
1141 |
1142 |
1143 | begin
1144 | \b(by)\b
1145 | beginCaptures
1146 |
1147 | 1
1148 |
1149 | name
1150 | keyword.other.kotlin
1151 |
1152 |
1153 | end
1154 | (?=$)
1155 | patterns
1156 |
1157 |
1158 | include
1159 | #expressions
1160 |
1161 |
1162 |
1163 |
1164 | begin
1165 | (=)
1166 | beginCaptures
1167 |
1168 | 1
1169 |
1170 | name
1171 | keyword.operator.assignment.kotlin
1172 |
1173 |
1174 | end
1175 | (?=$)
1176 | patterns
1177 |
1178 |
1179 | include
1180 | #expressions
1181 |
1182 |
1183 | include
1184 | #getters-and-setters
1185 |
1186 |
1187 |
1188 |
1189 |
1190 |
1191 | scopeName
1192 | source.Kotlin
1193 | uuid
1194 | d508c059-a938-4779-b2bc-ff43a5078907
1195 |
1196 |
1197 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 |
2 | Apache License
3 | Version 2.0, January 2004
4 | http://www.apache.org/licenses/
5 |
6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7 |
8 | 1. Definitions.
9 |
10 | "License" shall mean the terms and conditions for use, reproduction,
11 | and distribution as defined by Sections 1 through 9 of this document.
12 |
13 | "Licensor" shall mean the copyright owner or entity authorized by
14 | the copyright owner that is granting the License.
15 |
16 | "Legal Entity" shall mean the union of the acting entity and all
17 | other entities that control, are controlled by, or are under common
18 | control with that entity. For the purposes of this definition,
19 | "control" means (i) the power, direct or indirect, to cause the
20 | direction or management of such entity, whether by contract or
21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
22 | outstanding shares, or (iii) beneficial ownership of such entity.
23 |
24 | "You" (or "Your") shall mean an individual or Legal Entity
25 | exercising permissions granted by this License.
26 |
27 | "Source" form shall mean the preferred form for making modifications,
28 | including but not limited to software source code, documentation
29 | source, and configuration files.
30 |
31 | "Object" form shall mean any form resulting from mechanical
32 | transformation or translation of a Source form, including but
33 | not limited to compiled object code, generated documentation,
34 | and conversions to other media types.
35 |
36 | "Work" shall mean the work of authorship, whether in Source or
37 | Object form, made available under the License, as indicated by a
38 | copyright notice that is included in or attached to the work
39 | (an example is provided in the Appendix below).
40 |
41 | "Derivative Works" shall mean any work, whether in Source or Object
42 | form, that is based on (or derived from) the Work and for which the
43 | editorial revisions, annotations, elaborations, or other modifications
44 | represent, as a whole, an original work of authorship. For the purposes
45 | of this License, Derivative Works shall not include works that remain
46 | separable from, or merely link (or bind by name) to the interfaces of,
47 | the Work and Derivative Works thereof.
48 |
49 | "Contribution" shall mean any work of authorship, including
50 | the original version of the Work and any modifications or additions
51 | to that Work or Derivative Works thereof, that is intentionally
52 | submitted to Licensor for inclusion in the Work by the copyright owner
53 | or by an individual or Legal Entity authorized to submit on behalf of
54 | the copyright owner. For the purposes of this definition, "submitted"
55 | means any form of electronic, verbal, or written communication sent
56 | to the Licensor or its representatives, including but not limited to
57 | communication on electronic mailing lists, source code control systems,
58 | and issue tracking systems that are managed by, or on behalf of, the
59 | Licensor for the purpose of discussing and improving the Work, but
60 | excluding communication that is conspicuously marked or otherwise
61 | designated in writing by the copyright owner as "Not a Contribution."
62 |
63 | "Contributor" shall mean Licensor and any individual or Legal Entity
64 | on behalf of whom a Contribution has been received by Licensor and
65 | subsequently incorporated within the Work.
66 |
67 | 2. Grant of Copyright License. Subject to the terms and conditions of
68 | this License, each Contributor hereby grants to You a perpetual,
69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70 | copyright license to reproduce, prepare Derivative Works of,
71 | publicly display, publicly perform, sublicense, and distribute the
72 | Work and such Derivative Works in Source or Object form.
73 |
74 | 3. Grant of Patent License. Subject to the terms and conditions of
75 | this License, each Contributor hereby grants to You a perpetual,
76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77 | (except as stated in this section) patent license to make, have made,
78 | use, offer to sell, sell, import, and otherwise transfer the Work,
79 | where such license applies only to those patent claims licensable
80 | by such Contributor that are necessarily infringed by their
81 | Contribution(s) alone or by combination of their Contribution(s)
82 | with the Work to which such Contribution(s) was submitted. If You
83 | institute patent litigation against any entity (including a
84 | cross-claim or counterclaim in a lawsuit) alleging that the Work
85 | or a Contribution incorporated within the Work constitutes direct
86 | or contributory patent infringement, then any patent licenses
87 | granted to You under this License for that Work shall terminate
88 | as of the date such litigation is filed.
89 |
90 | 4. Redistribution. You may reproduce and distribute copies of the
91 | Work or Derivative Works thereof in any medium, with or without
92 | modifications, and in Source or Object form, provided that You
93 | meet the following conditions:
94 |
95 | (a) You must give any other recipients of the Work or
96 | Derivative Works a copy of this License; and
97 |
98 | (b) You must cause any modified files to carry prominent notices
99 | stating that You changed the files; and
100 |
101 | (c) You must retain, in the Source form of any Derivative Works
102 | that You distribute, all copyright, patent, trademark, and
103 | attribution notices from the Source form of the Work,
104 | excluding those notices that do not pertain to any part of
105 | the Derivative Works; and
106 |
107 | (d) If the Work includes a "NOTICE" text file as part of its
108 | distribution, then any Derivative Works that You distribute must
109 | include a readable copy of the attribution notices contained
110 | within such NOTICE file, excluding those notices that do not
111 | pertain to any part of the Derivative Works, in at least one
112 | of the following places: within a NOTICE text file distributed
113 | as part of the Derivative Works; within the Source form or
114 | documentation, if provided along with the Derivative Works; or,
115 | within a display generated by the Derivative Works, if and
116 | wherever such third-party notices normally appear. The contents
117 | of the NOTICE file are for informational purposes only and
118 | do not modify the License. You may add Your own attribution
119 | notices within Derivative Works that You distribute, alongside
120 | or as an addendum to the NOTICE text from the Work, provided
121 | that such additional attribution notices cannot be construed
122 | as modifying the License.
123 |
124 | You may add Your own copyright statement to Your modifications and
125 | may provide additional or different license terms and conditions
126 | for use, reproduction, or distribution of Your modifications, or
127 | for any such Derivative Works as a whole, provided Your use,
128 | reproduction, and distribution of the Work otherwise complies with
129 | the conditions stated in this License.
130 |
131 | 5. Submission of Contributions. Unless You explicitly state otherwise,
132 | any Contribution intentionally submitted for inclusion in the Work
133 | by You to the Licensor shall be under the terms and conditions of
134 | this License, without any additional terms or conditions.
135 | Notwithstanding the above, nothing herein shall supersede or modify
136 | the terms of any separate license agreement you may have executed
137 | with Licensor regarding such Contributions.
138 |
139 | 6. Trademarks. This License does not grant permission to use the trade
140 | names, trademarks, service marks, or product names of the Licensor,
141 | except as required for reasonable and customary use in describing the
142 | origin of the Work and reproducing the content of the NOTICE file.
143 |
144 | 7. Disclaimer of Warranty. Unless required by applicable law or
145 | agreed to in writing, Licensor provides the Work (and each
146 | Contributor provides its Contributions) on an "AS IS" BASIS,
147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148 | implied, including, without limitation, any warranties or conditions
149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150 | PARTICULAR PURPOSE. You are solely responsible for determining the
151 | appropriateness of using or redistributing the Work and assume any
152 | risks associated with Your exercise of permissions under this License.
153 |
154 | 8. Limitation of Liability. In no event and under no legal theory,
155 | whether in tort (including negligence), contract, or otherwise,
156 | unless required by applicable law (such as deliberate and grossly
157 | negligent acts) or agreed to in writing, shall any Contributor be
158 | liable to You for damages, including any direct, indirect, special,
159 | incidental, or consequential damages of any character arising as a
160 | result of this License or out of the use or inability to use the
161 | Work (including but not limited to damages for loss of goodwill,
162 | work stoppage, computer failure or malfunction, or any and all
163 | other commercial damages or losses), even if such Contributor
164 | has been advised of the possibility of such damages.
165 |
166 | 9. Accepting Warranty or Additional Liability. While redistributing
167 | the Work or Derivative Works thereof, You may choose to offer,
168 | and charge a fee for, acceptance of support, warranty, indemnity,
169 | or other liability obligations and/or rights consistent with this
170 | License. However, in accepting such obligations, You may act only
171 | on Your own behalf and on Your sole responsibility, not on behalf
172 | of any other Contributor, and only if You agree to indemnify,
173 | defend, and hold each Contributor harmless for any liability
174 | incurred by, or claims asserted against, such Contributor by reason
175 | of your accepting any such warranty or additional liability.
176 |
177 | END OF TERMS AND CONDITIONS
178 |
179 | APPENDIX: How to apply the Apache License to your work.
180 |
181 | To apply the Apache License to your work, attach the following
182 | boilerplate notice, with the fields enclosed by brackets "[]"
183 | replaced with your own identifying information. (Don't include
184 | the brackets!) The text should be enclosed in the appropriate
185 | comment syntax for the file format. We also recommend that a
186 | file or class name and description of purpose be included on the
187 | same "printed page" as the copyright notice for easier
188 | identification within third-party archives.
189 |
190 | Copyright 2012-2014 Vladimir Kostyukov
191 |
192 | Licensed under the Apache License, Version 2.0 (the "License");
193 | you may not use this file except in compliance with the License.
194 | You may obtain a copy of the License at
195 |
196 | http://www.apache.org/licenses/LICENSE-2.0
197 |
198 | Unless required by applicable law or agreed to in writing, software
199 | distributed under the License is distributed on an "AS IS" BASIS,
200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201 | See the License for the specific language governing permissions and
202 | limitations under the License.
203 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Kotlin Sublime Text Package
2 | =============================
3 |
4 | This is [Sublime Text](http://www.sublimetext.com/) package for [Kotlin](http://kotlin.jetbrains.org/) programming language.
5 |
6 | 
7 |
8 | Overview
9 | --------
10 |
11 | The following modules already implemented:
12 |
13 | * Kotlin Syntax Defenition Kotlin.tmLanguage
14 |
15 | Download
16 | --------
17 |
18 | - The latest avaliable archived package: [Kotlin.sublime-package](https://github.com/downloads/vkostyukov/kotlin-sublime-package/Kotlin.sublime-package)
19 | - Tagged zip: [kotlin-sublime-package-1.0.zip](https://github.com/vkostyukov/kotlin-sublime-package/archive/kotlin-sublime-package-1.0.zip)
20 | - Current zipball: [kotlin-sublime-package-master.zip](https://github.com/vkostyukov/kotlin-sublime-package/archive/master.zip)
21 |
22 | Installation
23 | -----------
24 |
25 | There are three ways to install Kotlin Sublime Package:
26 |
27 | - Using archived package (kotlin.sublime-package
)
28 | - Using version control system (GitHub)
29 | - Using raw files (Kotlin.tmLanguage
) from repository tree
30 |
31 | There is [an instruction](http://sublimetext.info/docs/en/extensibility/packages.html) with detailed steps for any type of installation.
32 |
33 | Contribution
34 | ------------
35 |
36 | If you want to contribute to this project, first of all you need to download the latest version of [AAAPackageDev](https://bitbucket.org/guillermooo/aaapackagedev) - useful tool for Sublime Text Packages developing.
37 | Then you can follow the tutorials:
38 |
39 | * [Syntax Defenitions](http://sublimetext.info/docs/en/extensibility/syntaxdefs.html) for changing the syntax defenition file
40 | * [Snippets](http://sublimetext.info/docs/en/extensibility/snippets.html) for changing the snippet files
41 |
42 | There is also [a full documentation](http://sublimetext.info/docs/en/extensibility/extensibility.html) of Sublime Text extending.
43 |
44 | The best way to contribute is to send pull-requests though GitHub interface.
45 |
46 | Links
47 | -----
48 |
49 | * https://github.com/vkostyukov/kotlin-sublime-package
50 | * http://www.sublimetext.com/
51 | * http://kotlin.jetbrains.org/
52 |
53 | ----
54 | by [Vladimir Kostyukov](https://twitter.com/vkostyukov), 2017
55 |
--------------------------------------------------------------------------------
/scrot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vkostyukov/kotlin-sublime-package/aeeed2780b04aea3d293c547c24cae27cafef0c5/scrot.png
--------------------------------------------------------------------------------