packages/docutils/dochelpers
Source EditИнтеграционные помощники между docgen.nim и rst.nim.
Функция toLangSymbol(linkText) генерирует подпись docLink типа LangSymbol в rst.nim, в то время как match(generated, docLink) сопоставляет её с generated, сгенерированной из PNode с помощью docgen.rst.
Импорты
- rstast, strutils
Типы
LangSymbol = object symKind*: string ## "proc", "const", "type", etc symTypeKind*: string ## ""|enum|object|tuple - ## valid only when `symKind == "type"` name*: string ## plain symbol name without any parameters generics*: string ## generic parameters (without brackets) isGroup*: bool ## is LangSymbol a group with overloads? parametersProvided*: bool ## to disambiguate `proc f`_ and `proc f()`_ parameters*: seq[tuple[name: string, `type`: string]] ## name-type seq, e.g. for proc outType*: string ## result type, e.g. for proc- подпись символа в Nim Source Edit
Процедуры
func nimIdentBackticksNormalize(s: string): string {....raises: [], tags: [], forbids: [].}-
Нормализует строку
sкак идентификатор Nim.В отличие от
nimIdentNormalizeудаляет пробелы и обратные кавычки.Предупреждение: Не выполняется проверка (например, что идентификаторы не могут начинаться с цифр или '_', или что количество обратных кавычек чётное).Пример:
doAssert nimIdentBackticksNormalize("Foo_bar") == "Foobar" doAssert nimIdentBackticksNormalize("FoO BAr") == "Foobar" doAssert nimIdentBackticksNormalize("`Foo BAR`") == "Foobar" doAssert nimIdentBackticksNormalize("` Foo BAR `") == "Foobar" # not a valid identifier: doAssert nimIdentBackticksNormalize("`_x_y`") == "_xy"Source Edit proc toLangSymbol(linkText: PRstNode): LangSymbol {....raises: [ValueError], tags: [], forbids: [].}-
Анализирует
linkTextв более структурированную форму с помощью автомата состояний.Эта процедура предназначена для поддержки синтаксиса ссылок с операторами даже без экранированных обратных кавычек внутри:
`proc *`_ `proc []`_
Эта процедура должна синхронизироваться с процедурой
Source EditrenderTypesизcompiler/typesrenderer.nim.
© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/dochelpers.html