* successX now correctly shows html output for nim doc * fixes #13121 * fixup hintSuccessX to be less weird
This commit is contained in:
parent
51c072bd37
commit
d88b52c0bc
5 changed files with 18 additions and 6 deletions
|
|
@ -1072,6 +1072,7 @@ proc writeOutput*(d: PDoc, useWarning = false) =
|
||||||
if not writeRope(content, outfile):
|
if not writeRope(content, outfile):
|
||||||
rawMessage(d.conf, if useWarning: warnCannotOpenFile else: errCannotOpenFile,
|
rawMessage(d.conf, if useWarning: warnCannotOpenFile else: errCannotOpenFile,
|
||||||
outfile.string)
|
outfile.string)
|
||||||
|
d.conf.outFile = outfile.extractFilename.RelativeFile
|
||||||
|
|
||||||
proc writeOutputJson*(d: PDoc, useWarning = false) =
|
proc writeOutputJson*(d: PDoc, useWarning = false) =
|
||||||
runAllExamples(d)
|
runAllExamples(d)
|
||||||
|
|
@ -1089,6 +1090,7 @@ proc writeOutputJson*(d: PDoc, useWarning = false) =
|
||||||
if open(f, d.destFile.string, fmWrite):
|
if open(f, d.destFile.string, fmWrite):
|
||||||
write(f, $content)
|
write(f, $content)
|
||||||
close(f)
|
close(f)
|
||||||
|
d.conf.outFile = d.destFile.extractFilename.RelativeFile
|
||||||
else:
|
else:
|
||||||
localError(d.conf, newLineInfo(d.conf, AbsoluteFile d.filename, -1, -1),
|
localError(d.conf, newLineInfo(d.conf, AbsoluteFile d.filename, -1, -1),
|
||||||
warnUser, "unable to open file \"" & d.destFile.string &
|
warnUser, "unable to open file \"" & d.destFile.string &
|
||||||
|
|
|
||||||
|
|
@ -98,7 +98,7 @@ const
|
||||||
warnUser: "$1",
|
warnUser: "$1",
|
||||||
hintSuccess: "operation successful: $#",
|
hintSuccess: "operation successful: $#",
|
||||||
# keep in sync with `pegSuccess` see testament.nim
|
# keep in sync with `pegSuccess` see testament.nim
|
||||||
hintSuccessX: "$loc LOC; $sec sec; $mem; $build build; $project proj; $output out",
|
hintSuccessX: "$loc LOC; $sec sec; $mem; $build build; proj: $project; out: $output",
|
||||||
hintCC: "CC: \'$1\'", # unused
|
hintCC: "CC: \'$1\'", # unused
|
||||||
hintLineTooLong: "line too long",
|
hintLineTooLong: "line too long",
|
||||||
hintXDeclaredButNotUsed: "'$1' is declared but not used",
|
hintXDeclaredButNotUsed: "'$1' is declared but not used",
|
||||||
|
|
|
||||||
|
|
@ -364,7 +364,8 @@ proc mainCommand*(graph: ModuleGraph) =
|
||||||
else: "Debug"
|
else: "Debug"
|
||||||
let sec = formatFloat(epochTime() - conf.lastCmdTime, ffDecimal, 3)
|
let sec = formatFloat(epochTime() - conf.lastCmdTime, ffDecimal, 3)
|
||||||
let project = if optListFullPaths in conf.globalOptions: $conf.projectFull else: $conf.projectName
|
let project = if optListFullPaths in conf.globalOptions: $conf.projectFull else: $conf.projectName
|
||||||
let output = if optListFullPaths in conf.globalOptions: $conf.getOutFileFull else: $conf.outFile
|
var output = $conf.absOutFile
|
||||||
|
if optListFullPaths notin conf.globalOptions: output = output.AbsoluteFile.extractFilename
|
||||||
rawMessage(conf, hintSuccessX, [
|
rawMessage(conf, hintSuccessX, [
|
||||||
"loc", loc,
|
"loc", loc,
|
||||||
"sec", sec,
|
"sec", sec,
|
||||||
|
|
|
||||||
|
|
@ -284,8 +284,6 @@ type
|
||||||
severity: Severity) {.closure, gcsafe.}
|
severity: Severity) {.closure, gcsafe.}
|
||||||
cppCustomNamespace*: string
|
cppCustomNamespace*: string
|
||||||
|
|
||||||
proc getOutFileFull*(a: ConfigRef): AbsoluteFile = a.outDir / a.outFile
|
|
||||||
|
|
||||||
proc hcrOn*(conf: ConfigRef): bool = return optHotCodeReloading in conf.globalOptions
|
proc hcrOn*(conf: ConfigRef): bool = return optHotCodeReloading in conf.globalOptions
|
||||||
|
|
||||||
template depConfigFields*(fn) {.dirty.} =
|
template depConfigFields*(fn) {.dirty.} =
|
||||||
|
|
|
||||||
|
|
@ -54,8 +54,19 @@ when true:
|
||||||
|
|
||||||
proc `==`*[T: AnyPath](x, y: T): bool = eqImpl(x.string, y.string)
|
proc `==`*[T: AnyPath](x, y: T): bool = eqImpl(x.string, y.string)
|
||||||
|
|
||||||
|
template postProcessBase(base: AbsoluteDir): untyped =
|
||||||
|
# xxx: as argued here https://github.com/nim-lang/Nim/pull/10018#issuecomment-448192956
|
||||||
|
# empty paths should not mean `cwd` so the correct behavior would be to throw
|
||||||
|
# here and make sure `outDir` is always correctly initialized; for now
|
||||||
|
# we simply preserve pre-existing external semantics and treat it as `cwd`
|
||||||
|
when false:
|
||||||
|
doAssert isAbsolute(base.string), base.string
|
||||||
|
base
|
||||||
|
else:
|
||||||
|
if base.isEmpty: getCurrentDir().AbsoluteDir else: base
|
||||||
|
|
||||||
proc `/`*(base: AbsoluteDir; f: RelativeFile): AbsoluteFile =
|
proc `/`*(base: AbsoluteDir; f: RelativeFile): AbsoluteFile =
|
||||||
#assert isAbsolute(base.string)
|
let base = postProcessBase(base)
|
||||||
assert(not isAbsolute(f.string))
|
assert(not isAbsolute(f.string))
|
||||||
result = AbsoluteFile newStringOfCap(base.string.len + f.string.len)
|
result = AbsoluteFile newStringOfCap(base.string.len + f.string.len)
|
||||||
var state = 0
|
var state = 0
|
||||||
|
|
@ -63,7 +74,7 @@ when true:
|
||||||
addNormalizePath(f.string, result.string, state)
|
addNormalizePath(f.string, result.string, state)
|
||||||
|
|
||||||
proc `/`*(base: AbsoluteDir; f: RelativeDir): AbsoluteDir =
|
proc `/`*(base: AbsoluteDir; f: RelativeDir): AbsoluteDir =
|
||||||
#assert isAbsolute(base.string)
|
let base = postProcessBase(base)
|
||||||
assert(not isAbsolute(f.string))
|
assert(not isAbsolute(f.string))
|
||||||
result = AbsoluteDir newStringOfCap(base.string.len + f.string.len)
|
result = AbsoluteDir newStringOfCap(base.string.len + f.string.len)
|
||||||
var state = 0
|
var state = 0
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue