# msgs

Theme:

- Index

Search:
Group by:
Source Edit

# Imports

options, lineinfos, pathutils, ropes

# Types

    InstantiationInfo = typeof(instantiationInfo())

  Source Edit

    MsgFlag = enum
      msgStdout,                ## force writing to stdout, even stderr is default
      msgSkipHook,              ## skip message hook even if it is present
      msgNoUnitSep               ## the message is a complete "paragraph".

  flags altering msgWriteln behavior Source Edit

    MsgFlags = set[MsgFlag]

  Source Edit

    TErrorHandling = enum
      doNothing, doAbort, doRaise

  Source Edit

# Consts

    ColOffset = 1

  Source Edit

    commandLineDesc = "command line"

  Source Edit

    gCmdLineInfo = (line: 1'u, col: 1, fileIndex: -3)

  Source Edit

# Procs

    proc `$`(conf: ConfigRef; info: TLineInfo): string {.
        ...raises: [ValueError, OSError, KeyError], tags: [RootEffect, ReadDirEffect],
        forbids: [].}

  Source Edit

    proc `$`(info: TLineInfo): string {.error.}

  Source Edit

    proc `==`(a, b: TLineInfo): bool {....raises: [], tags: [], forbids: [].}

  Source Edit

    proc `??`(conf: ConfigRef; info: TLineInfo; filename: string): bool {.
        ...raises: [], tags: [], forbids: [].}

  Source Edit

    proc exactEquals(a, b: TLineInfo): bool {....raises: [], tags: [], forbids: [].}

  Source Edit

    proc fileInfoIdx(conf: ConfigRef; filename: AbsoluteFile): FileIndex {.
        ...raises: [KeyError, ValueError, OSError], tags: [ReadDirEffect, RootEffect],
        forbids: [].}

  Source Edit

    proc fileInfoIdx(conf: ConfigRef; filename: AbsoluteFile; isKnownFile: var bool): FileIndex {.
        ...raises: [KeyError, ValueError, OSError], tags: [ReadDirEffect, RootEffect],
        forbids: [].}

  Source Edit

    proc fileInfoIdx(conf: ConfigRef; filename: RelativeFile): FileIndex {.
        ...raises: [KeyError, ValueError, OSError], tags: [ReadDirEffect, RootEffect],
        forbids: [].}

  Source Edit

    proc fileInfoIdx(conf: ConfigRef; filename: RelativeFile; isKnownFile: var bool): FileIndex {.
        ...raises: [KeyError, ValueError, OSError], tags: [ReadDirEffect, RootEffect],
        forbids: [].}

  Source Edit

    proc fileInfoKnown(conf: ConfigRef; filename: AbsoluteFile): bool {....raises: [],
        tags: [ReadDirEffect], forbids: [].}

  Source Edit

    proc flushDot(conf: ConfigRef) {....raises: [IOError], tags: [WriteIOEffect],
                                     forbids: [].}

  safe to call multiple times Source Edit

    proc formatMsg(conf: ConfigRef; info: TLineInfo; msg: TMsgKind; arg: string): string {.
        ...raises: [ValueError, OSError, KeyError], tags: [RootEffect, ReadDirEffect],
        forbids: [].}

  Source Edit

    proc genSuccessX(conf: ConfigRef) {....raises: [ValueError, OSError, Exception,
        KeyError, IOError, ERecoverableError], tags: [TimeEffect, ReadDirEffect,
        RootEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect], forbids: [].}

  Source Edit

    proc getHash(conf: ConfigRef; fileIdx: FileIndex): string {....raises: [],
        tags: [], forbids: [].}

  Source Edit

    proc getInfoContext(conf: ConfigRef; index: int): TLineInfo {....raises: [],
        tags: [], forbids: [].}

  Source Edit

    proc getInfoContextLen(conf: ConfigRef): int {....raises: [], tags: [], forbids: [].}

  Source Edit

    proc liMessage(conf: ConfigRef; info: TLineInfo; msg: TMsgKind; arg: string;
                   eh: TErrorHandling; info2: InstantiationInfo; isRaw = false;
                   ignoreError = false) {....gcsafe, noinline, ...raises: [Exception,
        ValueError, OSError, KeyError, IOError, ERecoverableError], tags: [
        RootEffect, ReadDirEffect, WriteIOEffect, ReadIOEffect, ReadEnvEffect],
                                          forbids: [].}

  Source Edit

    proc listHints(conf: ConfigRef) {....raises: [Exception, IOError, ValueError],
                                      tags: [RootEffect, WriteIOEffect], forbids: [].}

  Source Edit

    proc listWarnings(conf: ConfigRef) {....raises: [Exception, IOError, ValueError],
                                         tags: [RootEffect, WriteIOEffect],
                                         forbids: [].}

  Source Edit

    proc log(s: string) {....raises: [IOError],
                          tags: [ReadEnvEffect, ReadIOEffect, WriteIOEffect],
                          forbids: [].}

  Source Edit

    proc makeCString(s: string): Rope {....raises: [], tags: [], forbids: [].}

  Source Edit

    proc msgKindToString(kind: TMsgKind): string {....raises: [], tags: [], forbids: [].}

  Source Edit

    proc msgQuit(x: int8) {....raises: [], tags: [], forbids: [].}

  Source Edit

    proc msgQuit(x: string) {....raises: [], tags: [], forbids: [].}

  Source Edit

    proc msgWriteln(conf: ConfigRef; s: string; flags: MsgFlags = {}) {.
        ...raises: [Exception, IOError], tags: [RootEffect, WriteIOEffect], forbids: [].}

  Writes given message string to stderr by default. If `--stdout` option is given, writes to stdout instead. If message hook is present, then it is used to output message rather than stderr/stdout. This behavior can be altered by given optional flags. Source Edit

    proc newLineInfo(conf: ConfigRef; filename: AbsoluteFile; line, col: int): TLineInfo {.
        inline, ...raises: [KeyError, ValueError, OSError],
        tags: [ReadDirEffect, RootEffect], forbids: [].}

  Source Edit

    proc newLineInfo(fileInfoIdx: FileIndex; line, col: int): TLineInfo {.
        ...raises: [], tags: [], forbids: [].}

  Source Edit

    proc numLines(conf: ConfigRef; fileIdx: FileIndex): int {....raises: [],
        tags: [ReadIOEffect], forbids: [].}

  xxx there's an off by 1 error that should be fixed; if a file ends with "foo" or "foon" it will return same number of lines (ie, a trailing empty line is discounted) Source Edit

    proc popInfoContext(conf: ConfigRef) {....raises: [], tags: [], forbids: [].}

  Source Edit

    proc pushInfoContext(conf: ConfigRef; info: TLineInfo; detail: string = "") {.
        ...raises: [], tags: [], forbids: [].}

  Source Edit

    proc quotedFilename(conf: ConfigRef; fi: FileIndex): Rope {....raises: [],
        tags: [], forbids: [].}

  Source Edit

    proc quotedFilename(conf: ConfigRef; i: TLineInfo): Rope {....raises: [], tags: [],
        forbids: [].}

  Source Edit

    proc setDirtyFile(conf: ConfigRef; fileIdx: FileIndex; filename: AbsoluteFile) {.
        ...raises: [], tags: [], forbids: [].}

  Source Edit

    proc setHash(conf: ConfigRef; fileIdx: FileIndex; hash: string) {....raises: [],
        tags: [], forbids: [].}

  Source Edit

    proc setInfoContextLen(conf: ConfigRef; L: int) {....raises: [], tags: [],
        forbids: [].}

  Source Edit

    proc sourceLine(conf: ConfigRef; i: TLineInfo): string {....raises: [],
        tags: [ReadIOEffect], forbids: [].}

  1-based index (matches editor line numbers); 1st line is for i.line = 1 last valid line is `numLines` inclusive Source Edit

    proc suggestQuit() {....raises: [ESuggestDone], tags: [], forbids: [].}

  Source Edit

    proc suggestWriteln(conf: ConfigRef; s: string) {....raises: [IOError, Exception],
        tags: [WriteIOEffect, RootEffect], forbids: [].}

  Source Edit

    proc toCChar(c: char; result: var string) {.inline, ...raises: [], tags: [],
        forbids: [].}

  Source Edit

    proc toColumn(info: TLineInfo): int {.inline, ...raises: [], tags: [], forbids: [].}

  Source Edit

    proc toFileLineCol(conf: ConfigRef; info: TLineInfo): string {.inline,
        ...raises: [ValueError, OSError, KeyError], tags: [RootEffect, ReadDirEffect],
        forbids: [].}

  Source Edit

    proc toFilenameOption(conf: ConfigRef; fileIdx: FileIndex; opt: FilenameOption): string {.
        ...raises: [ValueError, OSError, KeyError], tags: [RootEffect, ReadDirEffect],
        forbids: [].}

  Source Edit

    proc toFullPath(conf: ConfigRef; fileIdx: FileIndex): string {....raises: [],
        tags: [], forbids: [].}

  Source Edit

    proc toFullPathConsiderDirty(conf: ConfigRef; fileIdx: FileIndex): AbsoluteFile {.
        ...raises: [], tags: [], forbids: [].}

  Source Edit

    proc toLinenumber(info: TLineInfo): int {.inline, ...raises: [], tags: [],
        forbids: [].}

  Source Edit

    proc toMsgFilename(conf: ConfigRef; fileIdx: FileIndex): string {.
        ...raises: [ValueError, OSError, KeyError], tags: [RootEffect, ReadDirEffect],
        forbids: [].}

  Source Edit

    proc toProjPath(conf: ConfigRef; fileIdx: FileIndex): string {....raises: [],
        tags: [], forbids: [].}

  Source Edit

    proc warningDeprecated(conf: ConfigRef; info: TLineInfo = gCmdLineInfo; msg = "") {.
        inline, ...raises: [Exception, ValueError, OSError, KeyError, IOError,
                         ERecoverableError], tags: [RootEffect, ReadDirEffect,
        WriteIOEffect, ReadIOEffect, ReadEnvEffect], forbids: [].}

  Source Edit

# Templates

    template fatal(conf: ConfigRef; info: TLineInfo; arg = ""; msg = errFatal)

  Source Edit

    template globalAssert(conf: ConfigRef; cond: untyped;
                          info: TLineInfo = unknownLineInfo; arg = "")

  avoids boilerplate Source Edit

    template globalError(conf: ConfigRef; info: TLineInfo; arg: string)

  Source Edit

    template globalError(conf: ConfigRef; info: TLineInfo; msg: TMsgKind; arg = "")

  `local` means compilation keeps going until errorMax is reached (via `doNothing`), `global` means it stops. Source Edit

    template instLoc(): InstantiationInfo

  Source Edit

    template internalAssert(conf: ConfigRef; e: bool)

  Source Edit

    template internalError(conf: ConfigRef; errMsg: string)

  Source Edit

    template internalError(conf: ConfigRef; info: TLineInfo; errMsg: string)

  Source Edit

    template lintReport(conf: ConfigRef; info: TLineInfo; beau, got: string;
                        extraMsg = "")

  Source Edit

    template localError(conf: ConfigRef; info: TLineInfo; arg: string)

  Source Edit

    template localError(conf: ConfigRef; info: TLineInfo; msg: TMsgKind; arg = "")

  Source Edit

    template message(conf: ConfigRef; info: TLineInfo; msg: TMsgKind; arg = "")

  Source Edit

    template rawMessage(conf: ConfigRef; msg: TMsgKind; arg: string)

  Source Edit

    template rawMessage(conf: ConfigRef; msg: TMsgKind; args: openArray[string])

  Source Edit

    template toFilename(conf: ConfigRef; fileIdx: FileIndex): string

  Source Edit

    template toFilename(conf: ConfigRef; info: TLineInfo): string

  Source Edit

    template toFullPath(conf: ConfigRef; info: TLineInfo): string

  Source Edit

    template toFullPathConsiderDirty(conf: ConfigRef; info: TLineInfo): string

  Source Edit

    template toMsgFilename(conf: ConfigRef; info: TLineInfo): string

  Source Edit

    template toProjPath(conf: ConfigRef; info: TLineInfo): string

  Source Edit