nimpretty: bugfixes; refs #8078

This commit is contained in:
Araq
2018-06-20 11:35:36 +02:00
parent 9adfaa7f07
commit 1be82d96a6
4 changed files with 42 additions and 5 deletions

View File

@@ -74,9 +74,10 @@ template wr(x) =
template goodCol(col): bool = col in 40..MaxLineLen
const
splitters = {tkComma, tkSemicolon, tkParLe, tkParDotLe,
tkBracketLe, tkBracketLeColon, tkCurlyDotLe,
tkCurlyLe}
openPars = {tkParLe, tkParDotLe,
tkBracketLe, tkBracketLeColon, tkCurlyDotLe,
tkCurlyLe}
splitters = openPars + {tkComma, tkSemicolon}
oprSet = {tkOpr, tkDiv, tkMod, tkShl, tkShr, tkIn, tkNotin, tkIs,
tkIsnot, tkNot, tkOf, tkAs, tkDotDot, tkAnd, tkOr, tkXor}
@@ -169,7 +170,9 @@ proc emitTok*(em: var Emitter; L: TLexer; tok: TToken) =
of tokKeywordLow..tokKeywordHigh:
if endsInAlpha(em):
wr(" ")
elif not em.inquote and not endsInWhite(em) and tok.tokType in oprSet:
elif not em.inquote and not endsInWhite(em) and
em.lastTok notin openPars:
#and tok.tokType in oprSet
wr(" ")
if not em.inquote:

View File

@@ -16,7 +16,7 @@ proc test(infile, outfile: string) =
let produced = dir / nimFile & ".pretty"
if strip(readFile(expected)) != strip(readFile(produced)):
echo "FAILURE: files differ: ", nimFile
discard execShellCmd("diff -uNdr " & produced & " " & expected)
discard execShellCmd("diff -uNdr " & expected & " " & produced)
failures += 1
else:
echo "SUCCESS: files identical: ", nimFile

View File

@@ -8,6 +8,22 @@ import verylongnamehere,verylongnamehere,verylongnamehereverylongnamehereverylon
proc `[]=`() = discard "index setter"
proc `putter=`() = discard cast[pointer](cast[int](buffer) + size)
(not false)
let expr = if true: "true" else: "false"
var body = newNimNode(nnkIfExpr).add(
newNimNode(nnkElifBranch).add(
infix(newDotExpr(ident("a"), ident("kind")), "==", newDotExpr(ident("b"), ident("kind"))),
condition
),
newNimNode(nnkElse).add(newStmtList(newNimNode(nnkReturnStmt).add(ident("false"))))
)
# comment
var x = 1
type
GeneralTokenizer* = object of RootObj ## comment here
kind*: TokenClass ## and here

View File

@@ -9,6 +9,24 @@ import verylongnamehere, verylongnamehere,
proc `[]=`() = discard "index setter"
proc `putter=`() = discard cast[pointer](cast[int](buffer) + size)
(not false)
let expr = if true: "true" else: "false"
var body = newNimNode(nnkIfExpr).add(
newNimNode(nnkElifBranch).add(
infix(newDotExpr(ident("a"), ident("kind")), "==", newDotExpr(ident("b"),
ident("kind"))),
condition
),
newNimNode(nnkElse).add(newStmtList(newNimNode(nnkReturnStmt).add(ident(
"false"))))
)
# comment
var x = 1
type
GeneralTokenizer* = object of RootObj ## comment here
kind*: TokenClass ## and here