/- Copyright (c) 2021 Microsoft Corporation. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Authors: Leonardo de Moura -/ prelude import Lean.DocString.Extension import Lean.Parser.Tactic.Doc import Lean.Parser.Term.Doc set_option linter.missingDocs true -- This module contains the main query interface for docstrings, which assembles user-visible -- docstrings. -- The module `Lean.DocString.Extension` contains the underlying data. namespace Lean open Lean.Parser.Tactic.Doc open Lean.Parser.Term.Doc /-- Finds the docstring for a name, taking tactic alternate forms and documentation extensions into account. Use `Lean.findSimpleDocString?` to look up the raw docstring without resolving alternate forms or including extensions. -/ def findDocString? (env : Environment) (declName : Name) (includeBuiltin := true) : IO (Option String) := do let declName := alternativeOfTactic env declName |>.getD declName let exts := getTacticExtensionString env declName let spellings := getRecommendedSpellingString env declName return (← findSimpleDocString? env declName (includeBuiltin := includeBuiltin)).map (· ++ exts ++ spellings)