Nimpretty: fix #11937 (#11978)

* cosmetic improvements

* remove unused imports
* make 'openPars' and 'closedPars' more readable

* nimpretty: fix #11937 (wrong indentation)
This commit is contained in:
Andreas Rumpf
2019-08-20 16:03:04 +02:00
committed by GitHub
5 changed files with 86 additions and 11 deletions

View File

@@ -9,10 +9,7 @@
## Layouter for nimpretty.
import idents, lexer, lineinfos, llstream, options, msgs, strutils,
pathutils
from os import changeFileExt
from sequtils import delete
import idents, lexer, lineinfos, llstream, options, msgs, strutils, pathutils
const
MinLineLen = 15
@@ -314,11 +311,11 @@ proc removeSpaces(em: var Emitter) =
const
openPars = {tkParLe, tkParDotLe,
tkBracketLe, tkBracketLeColon, tkCurlyDotLe,
tkCurlyLe}
tkBracketLe, tkBracketDotLe, tkBracketLeColon,
tkCurlyDotLe, tkCurlyLe}
closedPars = {tkParRi, tkParDotRi,
tkBracketRi, tkCurlyDotRi,
tkCurlyRi, tkBracketDotRi}
tkBracketRi, tkBracketDotRi,
tkCurlyDotRi, tkCurlyRi}
splitters = openPars + {tkComma, tkSemiColon} # do not add 'tkColon' here!
oprSet = {tkOpr, tkDiv, tkMod, tkShl, tkShr, tkIn, tkNotin, tkIs,
@@ -444,6 +441,9 @@ proc emitTok*(em: var Emitter; L: TLexer; tok: TToken) =
em.indentLevel = tok.indent
elif (em.lastTok in (splitters + oprSet) and
tok.tokType notin (closedPars - {tkBracketDotRi})):
if tok.tokType in openPars and tok.indent > em.indentStack[^1]:
while em.indentStack[^1] < tok.indent:
em.indentStack.add(em.indentStack[^1] + em.indWidth)
# aka: we are in an expression context:
let alignment = max(tok.indent - em.indentStack[^1], 0)
em.indentLevel = alignment + em.indentStack.high * em.indWidth

View File

@@ -12,8 +12,7 @@
when not defined(nimpretty):
{.error: "This needs to be compiled with --define:nimPretty".}
import ../compiler / [idents, msgs, ast, syntaxes, renderer, options,
pathutils, layouter]
import ../compiler / [idents, msgs, syntaxes, options, pathutils, layouter]
import parseopt, strutils, os

View File

@@ -812,7 +812,7 @@ let foo = if cond:
let a =
[[aaadsfas, bbb],
[ccc, ddd]]
[ccc, ddd]]
let b = [
[aaa, bbb],

View File

@@ -71,3 +71,41 @@ proc a() =
# comment 2
discard
proc i11937() =
result = %*
{
"_comment": "pbreports-style JSON",
"attributes": [],
"dataset_uuids": [],
"id": "microbial_asm_polishing_report",
"plotGroups": [],
"tables": [
{
"columns": [
{
"header": "Contig",
"id": "microbial",
"values": values_contig
},
{
"header": "Length",
"id": "microbial",
"values": values_length
},
{
"header": "Circular?",
"id": "microbial",
"values": values_circular
}
],
"id": "microbial_asm_polishing_report.contigs_table",
"title": "Polished contigs from Microbial Assembly"
},
],
"tags": [],
"title": "Microbial Assembly Polishing Report",
"uuid": uuid,
"version": version
}

View File

@@ -71,3 +71,41 @@ proc a() =
# comment 2
discard
proc i11937() =
result = %*
{
"_comment": "pbreports-style JSON",
"attributes": [],
"dataset_uuids": [],
"id": "microbial_asm_polishing_report",
"plotGroups": [],
"tables": [
{
"columns": [
{
"header": "Contig",
"id": "microbial",
"values": values_contig
},
{
"header": "Length",
"id": "microbial",
"values": values_length
},
{
"header": "Circular?",
"id": "microbial",
"values": values_circular
}
],
"id": "microbial_asm_polishing_report.contigs_table",
"title": "Polished contigs from Microbial Assembly"
},
],
"tags": [],
"title": "Microbial Assembly Polishing Report",
"uuid": uuid,
"version": version
}