本文两部分:

    1.使用现成插件包配置Kotlin 

    2.手动配置Kotlin

 

1.准备工具

  用来编译运行kotlin代码,只看代码,可跳过此步。

1.1 下载JetBrains kotlin编译器

  https://github.com/JetBrains/kotlin/releases

  找到最新版本下载 :这里用的1.6.10

在sublime3中配置kotlin

1.2 设置环境变量

1 export KOTLINC=~/android/kotlin/kotlinc
2 export KOTLIN_NATIVE=~/android/kotlin/kotlin-native-linux-x86_64-1.6.10
3 export PATH=$ANDROID:$PATH:$KOTLINC/bin:$KOTLIN_NATIVE/bin:.

  source ~./profile

2.使用现成插件包

2.1 工具官网

  https://github.com/vkostyukov/kotlin-sublime-package

2.2 安装过程

第1步 菜单选项

  Preferences --> Paceage Control  --> Install Package 

在sublime3中配置kotlin

第2步 搜索Kotlin 包

在sublime3中配置kotlin

第3步 安装Kotlin包

选中Kotlin包,双击左键或者回车 安装:安装过程见左下状态栏:

在sublime3中配置kotlin

2.3 编译和运行kotlin代码

a.配置编译系统

  Tools --> Build System --> Kotlin(或者Automatic)

b.设置编译工具 (Ctrl + Shift + B )

在sublime3中配置kotlin

b.编译运行 (Ctrl + B)

在sublime3中配置kotlin

2.4 卸载Kotlin包

  Preferences --> Paceage Control  -->  Remove Pacakge

在sublime3中配置kotlin

  选中Kotlin包,双击左键或者回车卸载。 在sublime3中配置kotlin    

3.手动配置

3.1 设置SublimeText3的系统构建工具

第1步 菜单选项

  打开sublime text 3 :   Tools --> Build System --> New Build System... 

第2步 设置配置文件

 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 }

第3步 保存为 Kotlin1.6.10.sublime-build 

  默认保存在 ~/.config/sublime-text/Packages/User/ 目录下。

在sublime3中配置kotlin

第4步 添加编译的菜单选项

如果第3步未成功,那么打开 ~/.config/sublime-text/Local/Session.sublime_session 文件

在sublime3中配置kotlin

3.2 配置语法高亮样式

第1步 添加Kotlin语法文件

在 ~/.config/sublime-text/Packages/User/ 目录下新建 Kotlin1.6.10.tmLanguage 文件,内容如下:

   1 <?xml version="1.0" encoding="UTF-8"?>
   2 <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
   3 <plist version="1.0">
   4 <dict>
   5     <key>fileTypes</key>
   6     <array>
   7         <string>kt</string>
   8         <string>kts</string>
   9     </array>
  10     <key>name</key>
  11     <string>Kotlin1.6.10</string>
  12     <key>patterns</key>
  13     <array>
  14         <dict>
  15             <key>include</key>
  16             <string>#comments</string>
  17         </dict>
  18         <dict>
  19             <key>captures</key>
  20             <dict>
  21                 <key>1</key>
  22                 <dict>
  23                     <key>name</key>
  24                     <string>keyword.other.kotlin</string>
  25                 </dict>
  26                 <key>2</key>
  27                 <dict>
  28                     <key>name</key>
  29                     <string>entity.name.package.kotlin</string>
  30                 </dict>
  31             </dict>
  32             <key>match</key>
  33             <string>^\s*(package)\b(?:\s*([^ ;$]+)\s*)?</string>
  34         </dict>
  35         <dict>
  36             <key>include</key>
  37             <string>#imports</string>
  38         </dict>
  39         <dict>
  40             <key>include</key>
  41             <string>#statements</string>
  42         </dict>
  43     </array>
  44     <key>repository</key>
  45     <dict>
  46         <key>classes</key>
  47         <dict>
  48             <key>begin</key>
  49             <string>(?&lt;!::)(?=\b(?:companion|class|object|interface)\b)</string>
  50             <key>end</key>
  51             <string>(?=$|\})</string>
  52             <key>patterns</key>
  53             <array>
  54                 <dict>
  55                     <key>include</key>
  56                     <string>#comments</string>
  57                 </dict>
  58                 <dict>
  59                     <key>begin</key>
  60                     <string>\b(companion\s*)?(class|object|interface)\b</string>
  61                     <key>beginCaptures</key>
  62                     <dict>
  63                         <key>1</key>
  64                         <dict>
  65                             <key>name</key>
  66                             <string>storage.modifier.kotlin</string>
  67                         </dict>
  68                         <key>2</key>
  69                         <dict>
  70                             <key>name</key>
  71                             <string>storage.modifier.kotlin</string>
  72                         </dict>
  73                     </dict>
  74                     <key>end</key>
  75                     <string>(?=&lt;|\{|\(|:|$)</string>
  76                     <key>patterns</key>
  77                     <array>
  78                         <dict>
  79                             <key>include</key>
  80                             <string>#comments</string>
  81                         </dict>
  82                         <dict>
  83                             <key>match</key>
  84                             <string>\w+</string>
  85                             <key>name</key>
  86                             <string>entity.name.type.class.kotlin</string>
  87                         </dict>
  88                     </array>
  89                 </dict>
  90                 <dict>
  91                     <key>begin</key>
  92                     <string>&lt;</string>
  93                     <key>end</key>
  94                     <string>&gt;</string>
  95                     <key>patterns</key>
  96                     <array>
  97                         <dict>
  98                             <key>include</key>
  99                             <string>#generics</string>
 100                         </dict>
 101                     </array>
 102                 </dict>
 103                 <dict>
 104                     <key>begin</key>
 105                     <string>\(</string>
 106                     <key>end</key>
 107                     <string>\)</string>
 108                     <key>patterns</key>
 109                     <array>
 110                         <dict>
 111                             <key>include</key>
 112                             <string>#parameters</string>
 113                         </dict>
 114                     </array>
 115                 </dict>
 116                 <dict>
 117                     <key>begin</key>
 118                     <string>(:)</string>
 119                     <key>beginCaptures</key>
 120                     <dict>
 121                         <key>1</key>
 122                         <dict>
 123                             <key>name</key>
 124                             <string>keyword.operator.declaration.kotlin</string>
 125                         </dict>
 126                     </dict>
 127                     <key>end</key>
 128                     <string>(?={|$)</string>
 129                     <key>patterns</key>
 130                     <array>
 131                         <dict>
 132                             <key>match</key>
 133                             <string>\w+</string>
 134                             <key>name</key>
 135                             <string>entity.other.inherited-class.kotlin</string>
 136                         </dict>
 137                         <dict>
 138                             <key>begin</key>
 139                             <string>\(</string>
 140                             <key>end</key>
 141                             <string>\)</string>
 142                             <key>patterns</key>
 143                             <array>
 144                                 <dict>
 145                                     <key>include</key>
 146                                     <string>#expressions</string>
 147                                 </dict>
 148                             </array>
 149                         </dict>
 150                     </array>
 151                 </dict>
 152                 <dict>
 153                     <key>begin</key>
 154                     <string>\{</string>
 155                     <key>end</key>
 156                     <string>\}</string>
 157                     <key>patterns</key>
 158                     <array>
 159                         <dict>
 160                             <key>include</key>
 161                             <string>#statements</string>
 162                         </dict>
 163                     </array>
 164                 </dict>
 165             </array>
 166         </dict>
 167         <key>comments</key>
 168         <dict>
 169             <key>patterns</key>
 170             <array>
 171                 <dict>
 172                     <key>begin</key>
 173                     <string>/\*</string>
 174                     <key>captures</key>
 175                     <dict>
 176                         <key>0</key>
 177                         <dict>
 178                             <key>name</key>
 179                             <string>punctuation.definition.comment.kotlin</string>
 180                         </dict>
 181                     </dict>
 182                     <key>end</key>
 183                     <string>\*/</string>
 184                     <key>name</key>
 185                     <string>comment.block.kotlin</string>
 186                 </dict>
 187                 <dict>
 188                     <key>captures</key>
 189                     <dict>
 190                         <key>1</key>
 191                         <dict>
 192                             <key>name</key>
 193                             <string>comment.line.double-slash.kotlin</string>
 194                         </dict>
 195                         <key>2</key>
 196                         <dict>
 197                             <key>name</key>
 198                             <string>punctuation.definition.comment.kotlin</string>
 199                         </dict>
 200                     </dict>
 201                     <key>match</key>
 202                     <string>\s*((//).*$\n?)</string>
 203                 </dict>
 204             </array>
 205         </dict>
 206         <key>constants</key>
 207         <dict>
 208             <key>patterns</key>
 209             <array>
 210                 <dict>
 211                     <key>match</key>
 212                     <string>\b(true|false|null|this|super)\b</string>
 213                     <key>name</key>
 214                     <string>constant.language.kotlin</string>
 215                 </dict>
 216                 <dict>
 217                     <key>match</key>
 218                     <string>\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)([LlFf])?\b</string>
 219                     <key>name</key>
 220                     <string>constant.numeric.kotlin</string>
 221                 </dict>
 222                 <dict>
 223                     <key>match</key>
 224                     <string>\b([A-Z][A-Z0-9_]+)\b</string>
 225                     <key>name</key>
 226                     <string>constant.other.kotlin</string>
 227                 </dict>
 228             </array>
 229         </dict>
 230         <key>expressions</key>
 231         <dict>
 232             <key>patterns</key>
 233             <array>
 234                 <dict>
 235                     <key>begin</key>
 236                     <string>\(</string>
 237                     <key>end</key>
 238                     <string>\)</string>
 239                     <key>patterns</key>
 240                     <array>
 241                         <dict>
 242                             <key>include</key>
 243                             <string>#expressions</string>
 244                         </dict>
 245                     </array>
 246                 </dict>
 247                 <dict>
 248                     <key>include</key>
 249                     <string>#types</string>
 250                 </dict>
 251                 <dict>
 252                     <key>include</key>
 253                     <string>#strings</string>
 254                 </dict>
 255                 <dict>
 256                     <key>include</key>
 257                     <string>#constants</string>
 258                 </dict>
 259                 <dict>
 260                     <key>include</key>
 261                     <string>#comments</string>
 262                 </dict>
 263                 <dict>
 264                     <key>include</key>
 265                     <string>#keywords</string>
 266                 </dict>
 267             </array>
 268         </dict>
 269         <key>functions</key>
 270         <dict>
 271             <key>begin</key>
 272             <string>(?=\s*\b(?:fun)\b)</string>
 273             <key>end</key>
 274             <string>(?=$|\})</string>
 275             <key>patterns</key>
 276             <array>
 277                 <dict>
 278                     <key>begin</key>
 279                     <string>\b(fun)\b</string>
 280                     <key>beginCaptures</key>
 281                     <dict>
 282                         <key>1</key>
 283                         <dict>
 284                             <key>name</key>
 285                             <string>keyword.other.kotlin</string>
 286                         </dict>
 287                     </dict>
 288                     <key>end</key>
 289                     <string>(?=\()</string>
 290                     <key>patterns</key>
 291                     <array>
 292                         <dict>
 293                             <key>begin</key>
 294                             <string>&lt;</string>
 295                             <key>end</key>
 296                             <string>&gt;</string>
 297                             <key>patterns</key>
 298                             <array>
 299                                 <dict>
 300                                     <key>include</key>
 301                                     <string>#generics</string>
 302                                 </dict>
 303                             </array>
 304                         </dict>
 305                         <dict>
 306                             <key>captures</key>
 307                             <dict>
 308                                 <key>2</key>
 309                                 <dict>
 310                                     <key>name</key>
 311                                     <string>entity.name.function.kotlin</string>
 312                                 </dict>
 313                             </dict>
 314                             <key>match</key>
 315                             <string>([\.&lt;\?&gt;\w]+\.)?(\w+)</string>
 316                         </dict>
 317                     </array>
 318                 </dict>
 319                 <dict>
 320                     <key>begin</key>
 321                     <string>\(</string>
 322                     <key>end</key>
 323                     <string>\)</string>
 324                     <key>patterns</key>
 325                     <array>
 326                         <dict>
 327                             <key>include</key>
 328                             <string>#parameters</string>
 329                         </dict>
 330                     </array>
 331                 </dict>
 332                 <dict>
 333                     <key>begin</key>
 334                     <string>(:)</string>
 335                     <key>beginCaptures</key>
 336                     <dict>
 337                         <key>1</key>
 338                         <dict>
 339                             <key>name</key>
 340                             <string>keyword.operator.declaration.kotlin</string>
 341                         </dict>
 342                     </dict>
 343                     <key>end</key>
 344                     <string>(?={|=|$)</string>
 345                     <key>patterns</key>
 346                     <array>
 347                         <dict>
 348                             <key>include</key>
 349                             <string>#types</string>
 350                         </dict>
 351                     </array>
 352                 </dict>
 353                 <dict>
 354                     <key>begin</key>
 355                     <string>\{</string>
 356                     <key>end</key>
 357                     <string>(?=\})</string>
 358                     <key>patterns</key>
 359                     <array>
 360                         <dict>
 361                             <key>include</key>
 362                             <string>#statements</string>
 363                         </dict>
 364                     </array>
 365                 </dict>
 366                 <dict>
 367                     <key>begin</key>
 368                     <string>(=)</string>
 369                     <key>beginCaptures</key>
 370                     <dict>
 371                         <key>1</key>
 372                         <dict>
 373                             <key>name</key>
 374                             <string>keyword.operator.assignment.kotlin</string>
 375                         </dict>
 376                     </dict>
 377                     <key>end</key>
 378                     <string>(?=$)</string>
 379                     <key>patterns</key>
 380                     <array>
 381                         <dict>
 382                             <key>include</key>
 383                             <string>#expressions</string>
 384                         </dict>
 385                     </array>
 386                 </dict>
 387             </array>
 388         </dict>
 389         <key>generics</key>
 390         <dict>
 391             <key>patterns</key>
 392             <array>
 393                 <dict>
 394                     <key>begin</key>
 395                     <string>(:)</string>
 396                     <key>beginCaptures</key>
 397                     <dict>
 398                         <key>1</key>
 399                         <dict>
 400                             <key>name</key>
 401                             <string>keyword.operator.declaration.kotlin</string>
 402                         </dict>
 403                     </dict>
 404                     <key>end</key>
 405                     <string>(?=,|&gt;)</string>
 406                     <key>patterns</key>
 407                     <array>
 408                         <dict>
 409                             <key>include</key>
 410                             <string>#types</string>
 411                         </dict>
 412                     </array>
 413                 </dict>
 414                 <dict>
 415                     <key>include</key>
 416                     <string>#keywords</string>
 417                 </dict>
 418                 <dict>
 419                     <key>match</key>
 420                     <string>\w+</string>
 421                     <key>name</key>
 422                     <string>storage.type.generic.kotlin</string>
 423                 </dict>
 424             </array>
 425         </dict>
 426         <key>getters-and-setters</key>
 427         <dict>
 428             <key>patterns</key>
 429             <array>
 430                 <dict>
 431                     <key>begin</key>
 432                     <string>\b(get)\b\s*\(\s*\)</string>
 433                     <key>beginCaptures</key>
 434                     <dict>
 435                         <key>1</key>
 436                         <dict>
 437                             <key>name</key>
 438                             <string>entity.name.function.kotlin</string>
 439                         </dict>
 440                     </dict>
 441                     <key>end</key>
 442                     <string>\}|(?=\bset\b)|$</string>
 443                     <key>patterns</key>
 444                     <array>
 445                         <dict>
 446                             <key>begin</key>
 447                             <string>(=)</string>
 448                             <key>beginCaptures</key>
 449                             <dict>
 450                                 <key>1</key>
 451                                 <dict>
 452                                     <key>name</key>
 453                                     <string>keyword.operator.assignment.kotlin</string>
 454                                 </dict>
 455                             </dict>
 456                             <key>end</key>
 457                             <string>(?=$|\bset\b)</string>
 458                             <key>patterns</key>
 459                             <array>
 460                                 <dict>
 461                                     <key>include</key>
 462                                     <string>#expressions</string>
 463                                 </dict>
 464                             </array>
 465                         </dict>
 466                         <dict>
 467                             <key>begin</key>
 468                             <string>\{</string>
 469                             <key>end</key>
 470                             <string>\}</string>
 471                             <key>patterns</key>
 472                             <array>
 473                                 <dict>
 474                                     <key>include</key>
 475                                     <string>#expressions</string>
 476                                 </dict>
 477                             </array>
 478                         </dict>
 479                     </array>
 480                 </dict>
 481                 <dict>
 482                     <key>begin</key>
 483                     <string>\b(set)\b\s*(?=\()</string>
 484                     <key>beginCaptures</key>
 485                     <dict>
 486                         <key>1</key>
 487                         <dict>
 488                             <key>name</key>
 489                             <string>entity.name.function.kotlin</string>
 490                         </dict>
 491                     </dict>
 492                     <key>end</key>
 493                     <string>\}|(?=\bget\b)|$</string>
 494                     <key>patterns</key>
 495                     <array>
 496                         <dict>
 497                             <key>begin</key>
 498                             <string>\(</string>
 499                             <key>end</key>
 500                             <string>\)</string>
 501                             <key>patterns</key>
 502                             <array>
 503                                 <dict>
 504                                     <key>include</key>
 505                                     <string>#parameters</string>
 506                                 </dict>
 507                             </array>
 508                         </dict>
 509                         <dict>
 510                             <key>begin</key>
 511                             <string>(=)</string>
 512                             <key>beginCaptures</key>
 513                             <dict>
 514                                 <key>1</key>
 515                                 <dict>
 516                                     <key>name</key>
 517                                     <string>keyword.operator.assignment.kotlin</string>
 518                                 </dict>
 519                             </dict>
 520                             <key>end</key>
 521                             <string>(?=$|\bset\b)</string>
 522                             <key>patterns</key>
 523                             <array>
 524                                 <dict>
 525                                     <key>include</key>
 526                                     <string>#expressions</string>
 527                                 </dict>
 528                             </array>
 529                         </dict>
 530                         <dict>
 531                             <key>begin</key>
 532                             <string>\{</string>
 533                             <key>end</key>
 534                             <string>\}</string>
 535                             <key>patterns</key>
 536                             <array>
 537                                 <dict>
 538                                     <key>include</key>
 539                                     <string>#expressions</string>
 540                                 </dict>
 541                             </array>
 542                         </dict>
 543                     </array>
 544                 </dict>
 545             </array>
 546         </dict>
 547         <key>imports</key>
 548         <dict>
 549             <key>patterns</key>
 550             <array>
 551                 <dict>
 552                     <key>captures</key>
 553                     <dict>
 554                         <key>1</key>
 555                         <dict>
 556                             <key>name</key>
 557                             <string>keyword.other.kotlin</string>
 558                         </dict>
 559                         <key>2</key>
 560                         <dict>
 561                             <key>name</key>
 562                             <string>keyword.other.kotlin</string>
 563                         </dict>
 564                     </dict>
 565                     <key>match</key>
 566                     <string>^\s*(import)\s+[^ $]+\s+(as)?</string>
 567                 </dict>
 568             </array>
 569         </dict>
 570         <key>keywords</key>
 571         <dict>
 572             <key>patterns</key>
 573             <array>
 574                 <dict>
 575                     <key>match</key>
 576                     <string>\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</string>
 577                     <key>name</key>
 578                     <string>storage.modifier.kotlin</string>
 579                 </dict>
 580                 <dict>
 581                     <key>match</key>
 582                     <string>\b(try|catch|finally|throw)\b</string>
 583                     <key>name</key>
 584                     <string>keyword.control.catch-exception.kotlin</string>
 585                 </dict>
 586                 <dict>
 587                     <key>match</key>
 588                     <string>\b(if|else|while|for|do|return|when|where|break|continue)\b</string>
 589                     <key>name</key>
 590                     <string>keyword.control.kotlin</string>
 591                 </dict>
 592                 <dict>
 593                     <key>match</key>
 594                     <string>\b(in|is|!in|!is|as|as\?|assert)\b</string>
 595                     <key>name</key>
 596                     <string>keyword.operator.kotlin</string>
 597                 </dict>
 598                 <dict>
 599                     <key>match</key>
 600                     <string>(==|!=|===|!==|&lt;=|&gt;=|&lt;|&gt;)</string>
 601                     <key>name</key>
 602                     <string>keyword.operator.comparison.kotlin</string>
 603                 </dict>
 604                 <dict>
 605                     <key>match</key>
 606                     <string>(=)</string>
 607                     <key>name</key>
 608                     <string>keyword.operator.assignment.kotlin</string>
 609                 </dict>
 610                 <dict>
 611                     <key>match</key>
 612                     <string>(::)</string>
 613                     <key>name</key>
 614                     <string>keyword.operator.kotlin</string>
 615                 </dict>
 616                 <dict>
 617                     <key>match</key>
 618                     <string>(:)</string>
 619                     <key>name</key>
 620                     <string>keyword.operator.declaration.kotlin</string>
 621                 </dict>
 622                 <dict>
 623                     <key>match</key>
 624                     <string>\b(by)\b</string>
 625                     <key>name</key>
 626                     <string>keyword.other.by.kotlin</string>
 627                 </dict>
 628                 <dict>
 629                     <key>match</key>
 630                     <string>(\?\.)</string>
 631                     <key>name</key>
 632                     <string>keyword.operator.safenav.kotlin</string>
 633                 </dict>
 634                 <dict>
 635                     <key>match</key>
 636                     <string>(\.)</string>
 637                     <key>name</key>
 638                     <string>keyword.operator.dot.kotlin</string>
 639                 </dict>
 640                 <dict>
 641                     <key>match</key>
 642                     <string>(\?:)</string>
 643                     <key>name</key>
 644                     <string>keyword.operator.elvis.kotlin</string>
 645                 </dict>
 646                 <dict>
 647                     <key>match</key>
 648                     <string>(\-\-|\+\+)</string>
 649                     <key>name</key>
 650                     <string>keyword.operator.increment-decrement.kotlin</string>
 651                 </dict>
 652                 <dict>
 653                     <key>match</key>
 654                     <string>(\+=|\-=|\*=|\/=)</string>
 655                     <key>name</key>
 656                     <string>keyword.operator.arithmetic.assign.kotlin</string>
 657                 </dict>
 658                 <dict>
 659                     <key>match</key>
 660                     <string>(\.\.)</string>
 661                     <key>name</key>
 662                     <string>keyword.operator.range.kotlin</string>
 663                 </dict>
 664                 <dict>
 665                     <key>match</key>
 666                     <string>(\-|\+|\*|\/|%)</string>
 667                     <key>name</key>
 668                     <string>keyword.operator.arithmetic.kotlin</string>
 669                 </dict>
 670                 <dict>
 671                     <key>match</key>
 672                     <string>(!|&amp;&amp;|\|\|)</string>
 673                     <key>name</key>
 674                     <string>keyword.operator.logical.kotlin</string>
 675                 </dict>
 676                 <dict>
 677                     <key>match</key>
 678                     <string>(;)</string>
 679                     <key>name</key>
 680                     <string>punctuation.terminator.kotlin</string>
 681                 </dict>
 682             </array>
 683         </dict>
 684         <key>namespaces</key>
 685         <dict>
 686             <key>patterns</key>
 687             <array>
 688                 <dict>
 689                     <key>match</key>
 690                     <string>\b(namespace)\b</string>
 691                     <key>name</key>
 692                     <string>keyword.other.kotlin</string>
 693                 </dict>
 694                 <dict>
 695                     <key>begin</key>
 696                     <string>\{</string>
 697                     <key>end</key>
 698                     <string>\}</string>
 699                     <key>patterns</key>
 700                     <array>
 701                         <dict>
 702                             <key>include</key>
 703                             <string>#statements</string>
 704                         </dict>
 705                     </array>
 706                 </dict>
 707             </array>
 708         </dict>
 709         <key>parameters</key>
 710         <dict>
 711             <key>patterns</key>
 712             <array>
 713                 <dict>
 714                     <key>begin</key>
 715                     <string>(:)</string>
 716                     <key>beginCaptures</key>
 717                     <dict>
 718                         <key>1</key>
 719                         <dict>
 720                             <key>name</key>
 721                             <string>keyword.operator.declaration.kotlin</string>
 722                         </dict>
 723                     </dict>
 724                     <key>end</key>
 725                     <string>(?=,|\)|=)</string>
 726                     <key>patterns</key>
 727                     <array>
 728                         <dict>
 729                             <key>include</key>
 730                             <string>#types</string>
 731                         </dict>
 732                     </array>
 733                 </dict>
 734                 <dict>
 735                     <key>begin</key>
 736                     <string>(=)</string>
 737                     <key>beginCaptures</key>
 738                     <dict>
 739                         <key>1</key>
 740                         <dict>
 741                             <key>name</key>
 742                             <string>keyword.operator.declaration.kotlin</string>
 743                         </dict>
 744                     </dict>
 745                     <key>end</key>
 746                     <string>(?=,|\))</string>
 747                     <key>patterns</key>
 748                     <array>
 749                         <dict>
 750                             <key>include</key>
 751                             <string>#expressions</string>
 752                         </dict>
 753                     </array>
 754                 </dict>
 755                 <dict>
 756                     <key>include</key>
 757                     <string>#keywords</string>
 758                 </dict>
 759                 <dict>
 760                     <key>match</key>
 761                     <string>\w+</string>
 762                     <key>name</key>
 763                     <string>variable.parameter.function.kotlin</string>
 764                 </dict>
 765             </array>
 766         </dict>
 767         <key>statements</key>
 768         <dict>
 769             <key>patterns</key>
 770             <array>
 771                 <dict>
 772                     <key>include</key>
 773                     <string>#namespaces</string>
 774                 </dict>
 775                 <dict>
 776                     <key>include</key>
 777                     <string>#typedefs</string>
 778                 </dict>
 779                 <dict>
 780                     <key>include</key>
 781                     <string>#classes</string>
 782                 </dict>
 783                 <dict>
 784                     <key>include</key>
 785                     <string>#functions</string>
 786                 </dict>
 787                 <dict>
 788                     <key>include</key>
 789                     <string>#variables</string>
 790                 </dict>
 791                 <dict>
 792                     <key>include</key>
 793                     <string>#getters-and-setters</string>
 794                 </dict>
 795                 <dict>
 796                     <key>include</key>
 797                     <string>#expressions</string>
 798                 </dict>
 799             </array>
 800         </dict>
 801         <key>strings</key>
 802         <dict>
 803             <key>patterns</key>
 804             <array>
 805                 <dict>
 806                     <key>begin</key>
 807                     <string>"""</string>
 808                     <key>beginCaptures</key>
 809                     <dict>
 810                         <key>0</key>
 811                         <dict>
 812                             <key>name</key>
 813                             <string>punctuation.definition.string.begin.kotlin</string>
 814                         </dict>
 815                     </dict>
 816                     <key>end</key>
 817                     <string>"""</string>
 818                     <key>endCaptures</key>
 819                     <dict>
 820                         <key>0</key>
 821                         <dict>
 822                             <key>name</key>
 823                             <string>punctuation.definition.string.end.kotlin</string>
 824                         </dict>
 825                     </dict>
 826                     <key>name</key>
 827                     <string>string.quoted.third.kotlin</string>
 828                     <key>patterns</key>
 829                     <array>
 830                         <dict>
 831                             <key>match</key>
 832                             <string>(\$\w+|\$\{[^\}]+\})</string>
 833                             <key>name</key>
 834                             <string>variable.parameter.template.kotlin</string>
 835                         </dict>
 836                         <dict>
 837                             <key>match</key>
 838                             <string>\\.</string>
 839                             <key>name</key>
 840                             <string>constant.character.escape.kotlin</string>
 841                         </dict>
 842                     </array>
 843                 </dict>
 844                 <dict>
 845                     <key>begin</key>
 846                     <string>"</string>
 847                     <key>beginCaptures</key>
 848                     <dict>
 849                         <key>0</key>
 850                         <dict>
 851                             <key>name</key>
 852                             <string>punctuation.definition.string.begin.kotlin</string>
 853                         </dict>
 854                     </dict>
 855                     <key>end</key>
 856                     <string>"</string>
 857                     <key>endCaptures</key>
 858                     <dict>
 859                         <key>0</key>
 860                         <dict>
 861                             <key>name</key>
 862                             <string>punctuation.definition.string.end.kotlin</string>
 863                         </dict>
 864                     </dict>
 865                     <key>name</key>
 866                     <string>string.quoted.double.kotlin</string>
 867                     <key>patterns</key>
 868                     <array>
 869                         <dict>
 870                             <key>match</key>
 871                             <string>(\$\w+|\$\{[^\}]+\})</string>
 872                             <key>name</key>
 873                             <string>variable.parameter.template.kotlin</string>
 874                         </dict>
 875                         <dict>
 876                             <key>match</key>
 877                             <string>\\.</string>
 878                             <key>name</key>
 879                             <string>constant.character.escape.kotlin</string>
 880                         </dict>
 881                     </array>
 882                 </dict>
 883                 <dict>
 884                     <key>begin</key>
 885                     <string>'</string>
 886                     <key>beginCaptures</key>
 887                     <dict>
 888                         <key>0</key>
 889                         <dict>
 890                             <key>name</key>
 891                             <string>punctuation.definition.string.begin.kotlin</string>
 892                         </dict>
 893                     </dict>
 894                     <key>end</key>
 895                     <string>'</string>
 896                     <key>endCaptures</key>
 897                     <dict>
 898                         <key>0</key>
 899                         <dict>
 900                             <key>name</key>
 901                             <string>punctuation.definition.string.end.kotlin</string>
 902                         </dict>
 903                     </dict>
 904                     <key>name</key>
 905                     <string>string.quoted.single.kotlin</string>
 906                     <key>patterns</key>
 907                     <array>
 908                         <dict>
 909                             <key>match</key>
 910                             <string>\\.</string>
 911                             <key>name</key>
 912                             <string>constant.character.escape.kotlin</string>
 913                         </dict>
 914                     </array>
 915                 </dict>
 916                 <dict>
 917                     <key>begin</key>
 918                     <string>`</string>
 919                     <key>beginCaptures</key>
 920                     <dict>
 921                         <key>0</key>
 922                         <dict>
 923                             <key>name</key>
 924                             <string>punctuation.definition.string.begin.kotlin</string>
 925                         </dict>
 926                     </dict>
 927                     <key>end</key>
 928                     <string>`</string>
 929                     <key>endCaptures</key>
 930                     <dict>
 931                         <key>0</key>
 932                         <dict>
 933                             <key>name</key>
 934                             <string>punctuation.definition.string.end.kotlin</string>
 935                         </dict>
 936                     </dict>
 937                     <key>name</key>
 938                     <string>string.quoted.single.kotlin</string>
 939                 </dict>
 940             </array>
 941         </dict>
 942         <key>typedefs</key>
 943         <dict>
 944             <key>begin</key>
 945             <string>(?=\s*(?:type))</string>
 946             <key>end</key>
 947             <string>(?=$)</string>
 948             <key>patterns</key>
 949             <array>
 950                 <dict>
 951                     <key>match</key>
 952                     <string>\b(type)\b</string>
 953                     <key>name</key>
 954                     <string>keyword.other.kotlin</string>
 955                 </dict>
 956                 <dict>
 957                     <key>begin</key>
 958                     <string>&lt;</string>
 959                     <key>end</key>
 960                     <string>&gt;</string>
 961                     <key>patterns</key>
 962                     <array>
 963                         <dict>
 964                             <key>include</key>
 965                             <string>#generics</string>
 966                         </dict>
 967                     </array>
 968                 </dict>
 969                 <dict>
 970                     <key>include</key>
 971                     <string>#expressions</string>
 972                 </dict>
 973             </array>
 974         </dict>
 975         <key>types</key>
 976         <dict>
 977             <key>patterns</key>
 978             <array>
 979                 <dict>
 980                     <key>match</key>
 981                     <string>\b(Nothing|Any|Unit|String|CharSequence|Int|Boolean|Char|Long|Double|Float|Short|Byte|dynamic)\b</string>
 982                     <key>name</key>
 983                     <string>storage.type.buildin.kotlin</string>
 984                 </dict>
 985                 <dict>
 986                     <key>match</key>
 987                     <string>\b(IntArray|BooleanArray|CharArray|LongArray|DoubleArray|FloatArray|ShortArray|ByteArray)\b</string>
 988                     <key>name</key>
 989                     <string>storage.type.buildin.array.kotlin</string>
 990                 </dict>
 991                 <dict>
 992                     <key>begin</key>
 993                     <string>\b(Array|Collection|List|Map|Set|MutableList|MutableMap|MutableSet|Sequence)&lt;\b</string>
 994                     <key>beginCaptures</key>
 995                     <dict>
 996                         <key>1</key>
 997                         <dict>
 998                             <key>name</key>
 999                             <string>storage.type.buildin.collection.kotlin</string>
1000                         </dict>
1001                     </dict>
1002                     <key>end</key>
1003                     <string>&gt;</string>
1004                     <key>patterns</key>
1005                     <array>
1006                         <dict>
1007                             <key>include</key>
1008                             <string>#types</string>
1009                         </dict>
1010                         <dict>
1011                             <key>include</key>
1012                             <string>#keywords</string>
1013                         </dict>
1014                     </array>
1015                 </dict>
1016                 <dict>
1017                     <key>begin</key>
1018                     <string>\w+&lt;</string>
1019                     <key>end</key>
1020                     <string>&gt;</string>
1021                     <key>patterns</key>
1022                     <array>
1023                         <dict>
1024                             <key>include</key>
1025                             <string>#types</string>
1026                         </dict>
1027                         <dict>
1028                             <key>include</key>
1029                             <string>#keywords</string>
1030                         </dict>
1031                     </array>
1032                 </dict>
1033                 <dict>
1034                     <key>begin</key>
1035                     <string>\{</string>
1036                     <key>end</key>
1037                     <string>\}</string>
1038                     <key>patterns</key>
1039                     <array>
1040                         <dict>
1041                             <key>include</key>
1042                             <string>#statements</string>
1043                         </dict>
1044                     </array>
1045                 </dict>
1046                 <dict>
1047                     <key>begin</key>
1048                     <string>\(</string>
1049                     <key>end</key>
1050                     <string>\)</string>
1051                     <key>patterns</key>
1052                     <array>
1053                         <dict>
1054                             <key>include</key>
1055                             <string>#types</string>
1056                         </dict>
1057                     </array>
1058                 </dict>
1059                 <dict>
1060                     <key>match</key>
1061                     <string>(-&gt;)</string>
1062                     <key>name</key>
1063                     <string>keyword.operator.declaration.kotlin</string>
1064                 </dict>
1065             </array>
1066         </dict>
1067         <key>variables</key>
1068         <dict>
1069             <key>begin</key>
1070             <string>(?=\s*\b(?:var|val)\b)</string>
1071             <key>end</key>
1072             <string>(?=:|=|(\b(by)\b)|$)</string>
1073             <key>patterns</key>
1074             <array>
1075                 <dict>
1076                     <key>begin</key>
1077                     <string>\b(var|val)\b</string>
1078                     <key>beginCaptures</key>
1079                     <dict>
1080                         <key>1</key>
1081                         <dict>
1082                             <key>name</key>
1083                             <string>keyword.other.kotlin</string>
1084                         </dict>
1085                     </dict>
1086                     <key>end</key>
1087                     <string>(?=:|=|(\b(by)\b)|$)</string>
1088                     <key>patterns</key>
1089                     <array>
1090                         <dict>
1091                             <key>begin</key>
1092                             <string>&lt;</string>
1093                             <key>end</key>
1094                             <string>&gt;</string>
1095                             <key>patterns</key>
1096                             <array>
1097                                 <dict>
1098                                     <key>include</key>
1099                                     <string>#generics</string>
1100                                 </dict>
1101                             </array>
1102                         </dict>
1103                         <dict>
1104                             <key>captures</key>
1105                             <dict>
1106                                 <key>2</key>
1107                                 <dict>
1108                                     <key>name</key>
1109                                     <string>entity.name.variable.kotlin</string>
1110                                 </dict>
1111                             </dict>
1112                             <key>match</key>
1113                             <string>([\.&lt;\?&gt;\w]+\.)?(\w+)</string>
1114                         </dict>
1115                     </array>
1116                 </dict>
1117                 <dict>
1118                     <key>begin</key>
1119                     <string>(:)</string>
1120                     <key>beginCaptures</key>
1121                     <dict>
1122                         <key>1</key>
1123                         <dict>
1124                             <key>name</key>
1125                             <string>keyword.operator.declaration.kotlin</string>
1126                         </dict>
1127                     </dict>
1128                     <key>end</key>
1129                     <string>(?==|$)</string>
1130                     <key>patterns</key>
1131                     <array>
1132                         <dict>
1133                             <key>include</key>
1134                             <string>#types</string>
1135                         </dict>
1136                         <dict>
1137                             <key>include</key>
1138                             <string>#getters-and-setters</string>
1139                         </dict>
1140                     </array>
1141                 </dict>
1142                 <dict>
1143                     <key>begin</key>
1144                     <string>\b(by)\b</string>
1145                     <key>beginCaptures</key>
1146                     <dict>
1147                         <key>1</key>
1148                         <dict>
1149                             <key>name</key>
1150                             <string>keyword.other.kotlin</string>
1151                         </dict>
1152                     </dict>
1153                     <key>end</key>
1154                     <string>(?=$)</string>
1155                     <key>patterns</key>
1156                     <array>
1157                         <dict>
1158                             <key>include</key>
1159                             <string>#expressions</string>
1160                         </dict>
1161                     </array>
1162                 </dict>
1163                 <dict>
1164                     <key>begin</key>
1165                     <string>(=)</string>
1166                     <key>beginCaptures</key>
1167                     <dict>
1168                         <key>1</key>
1169                         <dict>
1170                             <key>name</key>
1171                             <string>keyword.operator.assignment.kotlin</string>
1172                         </dict>
1173                     </dict>
1174                     <key>end</key>
1175                     <string>(?=$)</string>
1176                     <key>patterns</key>
1177                     <array>
1178                         <dict>
1179                             <key>include</key>
1180                             <string>#expressions</string>
1181                         </dict>
1182                         <dict>
1183                             <key>include</key>
1184                             <string>#getters-and-setters</string>
1185                         </dict>
1186                     </array>
1187                 </dict>
1188             </array>
1189         </dict>
1190     </dict>
1191     <key>scopeName</key>
1192     <string>source.Kotlin</string>
1193     <key>uuid</key>
1194     <string>d508c059-a938-4779-b2bc-ff43a5078907</string>
1195 </dict>
1196 </plist>

第2步 选择Kotlin语法 

  右下脚  -->  左键  --> 选择喜欢的高亮样式

在sublime3中配置kotlin

3.3 编译运行kotlin代码

  和 [  2.3 编译和运行kotlin代码 ] 一样。

 

相关文章:

  • 2022-01-05
  • 2021-12-28
  • 2021-06-09
  • 2021-04-05
  • 2021-07-10
  • 2021-10-20
  • 2021-08-05
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-15
  • 2021-04-22
  • 2021-03-31
  • 2021-11-11
  • 2021-10-01
  • 2022-12-23
相关资源
相似解决方案