import Lean set_option linter.all true /-- A doc string -/ def hasDoc (x : Nat) := x def noDoc (x : Nat) := x private def auxDef (x : Nat) := x namespace Foo protected def noDoc2 (x : Nat) := x end Foo open Foo in def openIn (x : Nat) := x open Foo in /-- A doc string -/ def openIn2 (x : Nat) := x set_option pp.all true in def setOptionIn1 (x : Nat) := x set_option pp.all true in /-- A doc string -/ def setOptionIn2 (x : Nat) := x set_option linter.all false in def nolintAll (x : Nat) := x set_option linter.all true in set_option linter.missingDocs false in def nolintDoc (x : Nat) := x set_option linter.all false in set_option linter.missingDocs true in def lintDoc (x : Nat) := x inductive Ind where | ind1 | ind2 : Ind → Ind /-- A doc string -/ | doc : Ind with @[computed_field] field : Ind → Nat | _ => 1 structure Foo where mk1 : Nat /-- test -/ (mk2 mk3 : Nat) {mk4 mk5 : Nat} [mk6 mk7 : Nat] class Bar (α : Prop) where mk :: (foo bar := 1) class Bar2 (α : Prop) where bar := 2 class Bar3 (α : Prop) extends Bar α where bar := 3 (foo baz := 3) theorem aThm : True := trivial example : True := trivial instance : Bar True := {} initialize init : Unit ← return initialize return declare_syntax_cat myCat syntax "my_syn" : myCat syntax (name := namedSyn) "my_named_syn" myCat : command infixl:20 "" => Nat.add infixr:20 (name := namedInfix) "" => Nat.add notation:20 "my_notation" x y => Nat.add x y notation:20 (name := namedNota) "my_named_notation" x y => Nat.add x y macro_rules | `(my_named_syn my_syn) => `(def hygienic := 1) elab_rules : command | `(my_named_syn my_syn) => return my_named_syn my_syn elab "my_elab" : term => return Lean.mkConst ``false macro "my_macro" : term => `(my_elab) class abbrev BarAbbrev (α : Prop) := Bar α register_option myOption : Bool := { defValue := my_macro, descr := "hi mom" } elab (name := myCmd) (docComment)? "my_command" ident : command => pure () my_command x open Lean.Linter.MissingDocs in @[missing_docs_handler myCmd] def handleMyCmd : SimpleHandler := fun | `(my_command $x:ident) => lintNamed x "my_command" | _ => pure () /-- doc -/ my_command y my_command z