Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
const TWO_SPACES_CODE = [
"/*",
" * tricky comment block",
" */",
"div {",
" color: red;",
" background: blue;",
"}",
" ",
"span {",
" padding-left: 10px;",
"}",
].join("\n");
const FOUR_SPACES_CODE = [
"var obj = {",
" addNumbers: function() {",
" var x = 5;",
" var y = 18;",
" return x + y;",
" },",
" ",
" /*",
" * Do some stuff to two numbers",
" * ",
" * @param x",
" * @param y",
" * ",
" * @return the result of doing stuff",
" */",
" subtractNumbers: function(x, y) {",
" var x += 7;",
" var y += 18;",
" var result = x - y;",
" result %= 2;",
" }",
"}",
].join("\n");
const TABS_CODE = [
"/*",
" * tricky comment block",
" */",
"div {",
"\tcolor: red;",
"\tbackground: blue;",
"}",
"",
"span {",
"\tpadding-left: 10px;",
"}",
].join("\n");
const NONE_CODE = [
"var x = 0;",
" // stray thing",
"var y = 9;",
" ",
"",
].join("\n");
async function test() {
waitForExplicitFinish();
const { ed, win } = await setup();
is(ed.getOption("indentUnit"), 2, "2 spaces before code added");
is(ed.getOption("indentWithTabs"), false, "spaces is default");
ed.setText(NONE_CODE);
is(ed.getOption("indentUnit"), 2, "2 spaces after un-detectable code");
is(
ed.getOption("indentWithTabs"),
false,
"spaces still set after un-detectable code"
);
ed.setText(FOUR_SPACES_CODE);
is(ed.getOption("indentUnit"), 4, "4 spaces detected in 4 space code");
is(ed.getOption("indentWithTabs"), false, "spaces detected in 4 space code");
ed.setText(TWO_SPACES_CODE);
is(ed.getOption("indentUnit"), 2, "2 spaces detected in 2 space code");
is(ed.getOption("indentWithTabs"), false, "spaces detected in 2 space code");
ed.setText(TABS_CODE);
is(ed.getOption("indentUnit"), 2, "2 space indentation unit");
is(
ed.getOption("indentWithTabs"),
true,
"tabs detected in majority tabs code"
);
teardown(ed, win);
}