1<!-- Forked from https://microsoft.github.io/monaco-editor/ --> 2 3<!DOCTYPE html> 4<html lang="en"> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 7 <meta name="viewport" content="width=device-width" /> 8 9 <title>ktfmt - the Kotlin code formatter</title> 10 11 <link data-inline="yes-please" href="./lib/bootstrap-cosmo.css" rel="stylesheet"/> 12 <link data-inline="yes-please" href="./lib/bootstrap-responsive.min.css" rel="stylesheet"/> 13 <link data-inline="yes-please" href="./all.css" rel="stylesheet" /> 14 <link data-inline="yes-please" href="./index/index.css" rel="stylesheet" /> 15 16 <link data-name="vs/editor/editor.main" 17 rel="stylesheet" 18 href="node_modules/monaco-editor/min/vs/editor/editor.main.css" 19 /> 20 </head> 21 22 <body> 23 <a id="gh-link" href="https://github.com/facebook/ktfmt" 24 ><img 25 loading="lazy" 26 width="149" 27 height="149" 28 src="https://github.blog/wp-content/uploads/2008/12/forkme_right_white_ffffff.png?resize=149%2C149" 29 class="attachment-full size-full" 30 alt="Fork me on GitHub" 31 data-recalc-dims="1" 32 /></a> 33 <nav class="navbar navbar-inverse navbar-fixed-top"> 34 <div class="navbar-inner"> 35 <div class="container"> 36 <div class="logo"> 37 ktfmt 38 </div> 39 <div class="logo"> 40 <a href="index.html">- the Kotlin code formatter</a> 41 </div> 42 <!-- collapse button for smaller screens --> 43 <button 44 type="button" 45 class="btn btn-navbar" 46 data-toggle="collapse" 47 data-target=".nav-collapse" 48 > 49 <span class="icon-bar"></span> 50 <span class="icon-bar"></span> 51 <span class="icon-bar"></span> 52 </button> 53 54 <!-- navbar title --> 55 <div class="nav-collapse collapse"> 56 <ul class="nav"> 57 <li> 58 <a 59 class="nav-item" 60 href="https://github.com/facebook/ktfmt" 61 >GitHub</a 62 > 63 </li> 64 <li> 65 <a 66 class="nav-item" 67 href="https://kotlinlang.slack.com/archives/C01GZCU0QNB" 68 >Slack</a 69 > 70 </li> 71 <li> 72 <a 73 class="nav-item" 74 href="https://search.maven.org/artifact/com.facebook/ktfmt/{{version}}/jar" 75 >Maven Central</a 76 > 77 </li> 78 </ul> 79 </div> 80 </div> 81 </div> 82 </nav> 83 <section class="try"> 84 <div class="container"> 85 <h3>About</h3> 86 <div class="row"> 87 <div class="span12"> 88 <br /> 89 <p> 90 <code>ktfmt</code> is a program that pretty-prints (formats) 91 Kotlin code. 92 </p> 93 <p> 94 It always produces the same result, regardless of how the code 95 looks initially, freeing developers to focus on essence. 96 </p> 97 <p> 98 It is by design non-customizable in order to promote consistency. 99 </p> 100 </div> 101 </div> 102 <hr /> 103 <h3>Usage</h3> 104 <div class="row"> 105 <div class="span12"> 106 <br /> 107 <ul class="nav nav-tabs" id="usage_tab"> 108 <li class="active"> 109 <a href="#usage_intellij" data-toggle="tab" 110 >IntelliJ / Android Studio</a 111 > 112 </li> 113 <li> 114 <a href="#usage_gradle" data-toggle="tab">Gradle</a> 115 </li> 116 <li><a href="#usage_maven" data-toggle="tab">Maven</a></li> 117 <li><a href="#usage_cli" data-toggle="tab">Command line</a></li> 118 </ul> 119 <div class="tab-content"> 120 <div class="tab-pane active" id="usage_intellij"> 121 <p> 122 A ktfmt plugin that augments the Reformat Code action (<code>⌥⌘L</code>) is available from JetBrains Marketplace. 123 </p> 124 <a class="btn btn-info" href="https://plugins.jetbrains.com/plugin/14912-ktfmt" target="_blank">Install</a> 125 </div> 126 <div class="tab-pane" id="usage_gradle"> 127 <p> 128 <u><b>Spotless</b></u> (<a 129 href="https://github.com/diffplug/spotless/tree/main/plugin-gradle#ktfmt" 130 >details</a 131 >): 132 </p> 133 134 <pre> 135# build.gradle.kts 136plugins { id("com.diffplug.spotless") } 137 138// version and style are optional 139spotless { kotlin { ktfmt('{{version}}').kotlinlangStyle() } } 140</pre 141 > 142 143 <p>or,</p> 144 <p> 145 <u><b>ktfmt-gradle</b></u> (<a 146 href="https://github.com/cortinico/ktfmt-gradle#how-to-use-" 147 >details</a 148 >): 149 </p> 150 <pre> 151# build.gradle.kts 152plugins { id("com.ncorti.ktfmt.gradle") } 153 154ktfmt { kotlinLangStyle() } 155</pre 156 > 157 </div> 158 <div class="tab-pane" id="usage_maven"> 159 <p> 160 <u><b>Spotless</b></u> (<a 161 href="https://github.com/diffplug/spotless/tree/main/plugin-maven#ktfmt" 162 >details</a 163 >): 164 </p> 165 166 <pre> 167# pom.xml 168<configuration> 169 <kotlin> 170 <ktfmt> 171 <version>{{version}}</version> 172 </ktfmt> 173 </kotlin> 174</configuration> 175</pre 176 > 177 </div> 178 <div class="tab-pane" id="usage_cli"> 179 <p> 180 Download the jar from Maven Central and invoke it using 181 <code>java</code>: 182 </p> 183 <pre> 184$ wget https://repo1.maven.org/maven2/com/facebook/ktfmt/{{version}}/ktfmt-{{version}}-jar-with-dependencies.jar 185$ java -jar ktfmt-{{version}}-jar-with-dependencies.jar [--kotlinlang-style] [files...] 186</pre 187 > 188 </div> 189 </div> 190 </div> 191 </div> 192 <hr /> 193 <h3>Try It Online</h3> 194 <small>Running v{{version}}</small> 195 <div class="editor row"> 196 <div class="span12"> 197 <div class="row"> 198 <form id="editorForm" name="editorForm"> 199 <div class="span3"> 200 <label class="control-label">Style</label> 201 <select class="style-picker input-medium"> 202 <option>kotlinlang</option> 203 <option>Java-like</option> 204 </select> 205 </div> 206 <div class="span3"> 207 <label class="control-label">Column Limit</label> 208 <input 209 class="input-small column-limit-picker" 210 type="number" 211 min="50" 212 max="140" 213 class="form-control" 214 id="column_limit" 215 value="100" 216 required 217 /> 218 </div> 219 <div class="span4 pull-right"> 220 <button class="btn btn-primary pull-right" type="submit"> 221 Format 222 </button> 223 <p 224 id="error-message" 225 class="text-error" 226 style="display: none" 227 > 228 Donec ullamcorper nulla non metus auctor fringilla. 229 </p> 230 </div> 231 </form> 232 </div> 233 <div class="editor-frame"> 234 <div class="loading editor" style="display: none"> 235 <div class="progress progress-striped active"> 236 <div class="bar"></div> 237 </div> 238 </div> 239 <div id="editor"></div> 240 </div> 241 </div> 242 </div> 243 </div> 244 </section> 245 246 <footer class="container"> 247 <hr /> 248 <p class="text-center"> 249 [ 250 <a 251 target="_blank" 252 rel="noopener noreferrer" 253 href="https://opensource.facebook.com/legal/privacy/" 254 >Privacy</a 255 > 256 ] [ 257 <a 258 target="_blank" 259 rel="noopener noreferrer" 260 href="https://opensource.facebook.com/legal/terms/" 261 >Terms</a 262 > 263 ] [ 264 <a 265 target="_blank" 266 rel="noopener noreferrer" 267 href="https://opensource.facebook.com/legal/data-policy/" 268 >Data Policy</a 269 > 270 ] [ 271 <a 272 target="_blank" 273 rel="noopener noreferrer" 274 href="https://opensource.facebook.com/legal/cookie-policy/" 275 >Cookie Policy</a 276 > 277 ] 278 </p> 279 <p class="text-center"> 280 <a href="https://opensource.facebook.com/" title="Facebook Open Source"> 281 <img 282 src="img/oss_logo.png" 283 alt="Facebook Open Source" 284 style="max-height: 50px; margin-bottom: 12px" 285 /> 286 </a> 287 <br /> 288 <small>Copyright © Meta Platforms, Inc. Based on <a href="https://microsoft.github.io/monaco-editor">https://microsoft.github.io/monaco-editor</a></small> 289 </p> 290 </footer> 291 292 <script 293 src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js" 294 integrity="sha256-wS9gmOZBqsqWxgIVgA8Y9WcQOa7PgSIX+rPA0VL2rbQ=" 295 crossorigin="anonymous" 296 ></script> 297 <script 298 src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.0/bootstrap.min.js" 299 integrity="sha256-u+l2mGjpmGK/mFgUncmMcFKdMijvV+J3odlDJZSNUu8=" 300 crossorigin="anonymous" 301 ></script> 302 303 <script src="node_modules/monaco-editor/min/vs/loader.js"></script> 304 <script src="node_modules/monaco-editor/min/vs/editor/editor.main.nls.js"></script> 305 <script src="node_modules/monaco-editor/min/vs/editor/editor.main.js"></script> 306 <script data-inline="yes-please" src="./index/index.js"></script> 307 </body> 308</html> 309