* compiler/msgs: toMsgFilename now operates on FileIndex
* compiler/reorder: use toMsgFilename for compiler messages
* compiler/semstmts: respect listFullPaths for recursive deps error
* compiler/[msgs, options]: make toFilename independent of listFullPaths
toFilename is used mainly in codegen, as such it should not follow
--listFullPaths
* compiler/msgs: use toMsgFilename for toFileLineCol
This proc is mainly used for compiler messages, so it should follow
--listFullPaths
* compiler/msgs: remove toFileLine
unused proc
* compiler/msgs: cleanup toMsgFilename
Also improved path choosing logic, /home should now be preferred over
../home on *nix
Previously the compiler would generate suggestions based on the symbol
identifier length, but that might not reflect the actual representation
of it within the actual source code.
This commit implements a simple source scanner for the suggest module to
address the problem outlined above.
Fixesnim-lang/nimsuggest#24
The old logic wasn't very useful because
`relPath` is almost always shorter than `absPath`,
e.g. `../../../../../` is shorter than `C:\Program Files`.
This way allows the usage of a relative path for
at most two levels deep, e.g. `../../relPath`,
otherwise the absolute path is used.
* fixes#8794 : `Error: undeclared field: 'foo'` should show type (+ where type is defined) (hard to guess in generic code)
* fixes#9270: `--listFullPaths` not honored by `declared in foo.nim` messages
* fixes#9767: VM stacktrace doesn't honor --excessiveStackTrace:on
* fixes#9768: VM stacktrace misses column info, can lead to ambiguous or harder to read stacktraces
* refactors some col+1 code to col + ColOffset (self documents code)
* make getProcHeader show declared info location also for types and all routine kinds (including macros,templates) instead of just (rather arbitrarily) for iterator,proc,func,method
* --listFullPaths now is honored in more places
* fix typo system/except.nim => lib/system/excpt.nim
* remove substr(foo, 0) hack in compiler/vm.nim which seems old and not applicable anymore