📄 pyautoindentstrategytest.java
字号:
" def __init__(self)";
docCmd = new DocCmd(doc.length(), 0, ")");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
expected = ")";
assertEquals(expected, docCmd.text);
assertEquals(0, docCmd.caretOffset);
// test inputting ')' at the end of a document when it should replace a ')'
doc = "class c:\n" +
" def __init__(self)";
docCmd = new DocCmd(doc.length() - 1, 0, ")");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
expected = "";
assertEquals(expected, docCmd.text);
assertEquals(31, docCmd.caretOffset);
// test inputting ')' in the middle of the document
doc = "def __init__(self):\n" +
" pass";
docCmd = new DocCmd(17, 0, ")");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
expected = "";
assertEquals(expected, docCmd.text);
assertEquals(18, docCmd.caretOffset);
// check very simple braces insertion
doc = "()";
docCmd = new DocCmd(1, 0, ")");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
expected = "";
assertEquals(expected, docCmd.text);
assertEquals(2, docCmd.caretOffset);
// check simple braces insertion not at end of document
doc = "() ";
docCmd = new DocCmd(1, 0, ")");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
expected = "";
assertEquals(expected, docCmd.text);
assertEquals(2, docCmd.caretOffset);
// check insertion that should happen even being just before a ')'
doc = "(() ";
docCmd = new DocCmd(2, 0, ")");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
expected = ")";
assertEquals(expected, docCmd.text);
assertEquals(0, docCmd.caretOffset);
// check same stuff for brackets
// check simple braces insertion not at end of document
doc = "[] ";
docCmd = new DocCmd(1, 0, "]");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
expected = "";
assertEquals(expected, docCmd.text);
assertEquals(2, docCmd.caretOffset);
// two different kinds of braces next to each other
doc = "([)";
docCmd = new DocCmd(2, 0, "]");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
expected = "]";
assertEquals(expected, docCmd.text);
assertEquals(0, docCmd.caretOffset);
}
public void testParens() {
strategy.setIndentPrefs(new TestIndentPrefs(true, 4));
String str = "isShown() #suite()" +
"";
final Document doc = new Document(str);
DocCmd docCmd = new DocCmd(doc.getLength()-") #suite()".length(), 0, ")");
strategy.customizeDocumentCommand(doc, docCmd);
assertEquals("", docCmd.text);
assertEquals(9, docCmd.caretOffset);
}
public void testParens2() {
strategy.setIndentPrefs(new TestIndentPrefs(true, 4));
String str = "isShown() #suite()'" +
"";
final Document doc = new Document(str);
int offset = doc.getLength()-") #suite()'".length();
DocCmd docCmd = new DocCmd(offset, 0, ")");
strategy.customizeDocumentCommand(doc, docCmd);
assertEquals("", docCmd.text);
assertEquals(offset+1, docCmd.caretOffset);
}
public void testParens3() {
strategy.setIndentPrefs(new TestIndentPrefs(true, 4));
String str = "assert_('\\\\' in txt) a()";
final Document doc = new Document(str);
int offset = doc.getLength()-")".length();
DocCmd docCmd = new DocCmd(offset, 0, ")");
strategy.customizeDocumentCommand(doc, docCmd);
assertEquals("", docCmd.text);
assertEquals(offset+1, docCmd.caretOffset);
}
public void testElse() {
//first part of test - simple case
strategy.setIndentPrefs(new TestIndentPrefs(true, 4, true));
String strDoc = "if foo:\n" +
" print a\n" +
" else";
int initialOffset = strDoc.length();
DocCmd docCmd = new DocCmd(initialOffset, 0, ":");
Document doc = new Document(strDoc);
strategy.customizeDocumentCommand(doc, docCmd);
String expected = ":";
assertEquals(docCmd.offset, initialOffset-4);
assertEquals(expected, docCmd.text);
assertEquals(
"if foo:\n" +
" print a\n" +
"else",
doc.get());
//second part of test - should not dedent
strategy.setIndentPrefs(new TestIndentPrefs(true, 4, true));
strDoc =
"if foo:\n" +
" if somethingElse:" +
" print a\n" +
" else";
initialOffset = strDoc.length();
docCmd = new DocCmd(initialOffset, 0, ":");
doc = new Document(strDoc);
strategy.customizeDocumentCommand(doc, docCmd);
expected = ":";
assertEquals(expected, docCmd.text);
assertEquals(docCmd.offset, initialOffset);
assertEquals(
"if foo:\n" +
" if somethingElse:" +
" print a\n" +
" else",
doc.get());
}
public void testTryExceptDedent() {
//first part of test - simple case
strategy.setIndentPrefs(new TestIndentPrefs(true, 4, true));
String strDoc = "try:\n" +
" print a\n" +
" except";
int initialOffset = strDoc.length();
DocCmd docCmd = new DocCmd(initialOffset, 0, ":");
Document doc = new Document(strDoc);
strategy.customizeDocumentCommand(doc, docCmd);
String expected = ":";
assertEquals(docCmd.offset, initialOffset-4);
assertEquals(expected, docCmd.text);
assertEquals(
"try:\n" +
" print a\n" +
"except",
doc.get());
//second part of test - should also dedent
strategy.setIndentPrefs(new TestIndentPrefs(true, 4, true));
strDoc =
"try:\n" +
" if somethingElse:" +
" print a\n" +
" except";
initialOffset = strDoc.length();
docCmd = new DocCmd(initialOffset, 0, ":");
doc = new Document(strDoc);
strategy.customizeDocumentCommand(doc, docCmd);
expected = ":";
assertEquals(expected, docCmd.text);
assertEquals(docCmd.offset, initialOffset-4);
assertEquals(
"try:\n" +
" if somethingElse:" +
" print a\n" +
"except",
doc.get());
}
public void testElif() {
//first part of test - simple case
strategy.setIndentPrefs(new TestIndentPrefs(true, 4, true));
String strDoc = "if foo:\n" +
" print a\n" +
" elif";
int initialOffset = strDoc.length();
DocCmd docCmd = new DocCmd(initialOffset, 0, " ");
Document doc = new Document(strDoc);
strategy.customizeDocumentCommand(doc, docCmd);
String expected = " ";
assertEquals(docCmd.offset, initialOffset-4);
assertEquals(expected, docCmd.text);
assertEquals(
"if foo:\n" +
" print a\n" +
"elif",
doc.get());
//second part of test - should not dedent
strategy.setIndentPrefs(new TestIndentPrefs(true, 4, true));
strDoc =
"if foo:\n" +
" if somethingElse:" +
" print a\n" +
" elif";
initialOffset = strDoc.length();
docCmd = new DocCmd(initialOffset, 0, " ");
doc = new Document(strDoc);
strategy.customizeDocumentCommand(doc, docCmd);
expected = " ";
assertEquals(expected, docCmd.text);
assertEquals(docCmd.offset, initialOffset);
assertEquals(
"if foo:\n" +
" if somethingElse:" +
" print a\n" +
" elif",
doc.get());
}
public void testElseInFor() {
//first part of test - simple case
strategy.setIndentPrefs(new TestIndentPrefs(true, 4, true));
String strDoc =
"for i in []:\n" +
" msg=\"success at %s\" % i\n" +
" else" +
"";
int initialOffset = strDoc.length();
DocCmd docCmd = new DocCmd(initialOffset, 0, ":");
Document doc = new Document(strDoc);
strategy.customizeDocumentCommand(doc, docCmd);
String expected = ":";
assertEquals(docCmd.offset, initialOffset-4);
assertEquals(expected, docCmd.text);
assertEquals(
"for i in []:\n" +
" msg=\"success at %s\" % i\n" +
"else" +
"",
doc.get());
}
public void testElseInTry() {
//first part of test - simple case
strategy.setIndentPrefs(new TestIndentPrefs(true, 4, true));
String strDoc =
"try:\n" +
" print a\n" +
"except:\n" +
" pass\n" +
" else";
int initialOffset = strDoc.length();
DocCmd docCmd = new DocCmd(initialOffset, 0, ":");
Document doc = new Document(strDoc);
strategy.customizeDocumentCommand(doc, docCmd);
String expected = ":";
assertEquals(docCmd.offset, initialOffset-4);
assertEquals(expected, docCmd.text);
assertEquals(
"try:\n" +
" print a\n" +
"except:\n" +
" pass\n" +
"else",
doc.get());
}
public void testElifWithPar() {
//first part of test - simple case
strategy.setIndentPrefs(new TestIndentPrefs(true, 4, true));
String strDoc = "if foo:\n" +
" print a\n" +
" elif";
int initialOffset = strDoc.length();
DocCmd docCmd = new DocCmd(initialOffset, 0, "(");
Document doc = new Document(strDoc);
strategy.customizeDocumentCommand(doc, docCmd);
String expected = "()";
assertEquals(docCmd.offset, initialOffset-4);
assertEquals(expected, docCmd.text);
assertEquals(
"if foo:\n" +
" print a\n" +
"elif",
doc.get());
//second part of test - should not dedent
strategy.setIndentPrefs(new TestIndentPrefs(true, 4, true));
strDoc =
"if foo:\n" +
" if somethingElse:" +
" print a\n" +
" elif";
initialOffset = strDoc.length();
docCmd = new DocCmd(initialOffset, 0, "(");
doc = new Document(strDoc);
strategy.customizeDocumentCommand(doc, docCmd);
expected = "()";
assertEquals(expected, docCmd.text);
assertEquals(docCmd.offset, initialOffset);
assertEquals(
"if foo:\n" +
" if somethingElse:" +
" print a\n" +
" elif",
doc.get());
}
public void testAutoImportStr2() {
strategy.setIndentPrefs(new TestIndentPrefs(false, 4, true));
String doc = "from ooooimport";
DocCmd docCmd = new DocCmd(doc.length()-"import".length(), 0, " ");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
String expected = " ";
assertEquals(expected, docCmd.text);
}
public void testAutoImportStr() {
strategy.setIndentPrefs(new TestIndentPrefs(false, 4, true));
String doc = "from xxx";
DocCmd docCmd = new DocCmd(doc.length(), 0, " ");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
String expected = " import ";
assertEquals(expected, docCmd.text);
doc = "from xxx import";
docCmd = new DocCmd(doc.length(), 0, " ");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
expected = " ";
assertEquals(expected, docCmd.text);
doc = "no from xxx";
docCmd = new DocCmd(doc.length(), 0, " ");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
expected = " ";
assertEquals(expected, docCmd.text);
doc = "From xxx";
docCmd = new DocCmd(doc.length(), 0, " ");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
expected = " ";
assertEquals(expected, docCmd.text);
doc = "from this space";
docCmd = new DocCmd(doc.length(), 0, " ");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
expected = " ";
assertEquals(expected, docCmd.text);
doc = "from";
docCmd = new DocCmd(doc.length(), 0, " ");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
expected = " ";
assertEquals(expected, docCmd.text);
doc = "from xxx import yyy";
docCmd = new DocCmd(8, 0, " ");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
expected = " ";
assertEquals(expected, docCmd.text);
doc = "from_xxx";
docCmd = new DocCmd(doc.length(), 0, " ");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
expected = " ";
assertEquals(expected, docCmd.text);
doc = "from importer";
docCmd = new DocCmd(doc.length(), 0, " ");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
expected = " import ";
assertEquals(expected, docCmd.text);
doc = "from importer";
docCmd = new DocCmd(doc.length()-2, 0, " ");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
expected = " ";
assertEquals(expected, docCmd.text);
doc = "from myimporter";
docCmd = new DocCmd(doc.length(), 0, " ");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
expected = " import ";
assertEquals(expected, docCmd.text);
doc = "from myimport";
docCmd = new DocCmd(doc.length(), 0, " ");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
expected = " import ";
assertEquals(expected, docCmd.text);
doc = "from xxx #import yyy";
docCmd = new DocCmd(8, 0, " ");
strategy.customizeDocumentCommand(new Document(doc), docCmd);
expected = " import ";
assertEquals(expected, docCmd.text);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -