nvim/clangdschema.json
sadanslargehole 671a7efdb9
a
2024-03-14 20:49:32 -04:00

694 lines
26 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://json.schemastore.org/clangd.json",
"definitions": {
"oneOrMorePath": {
"oneOf": [
{
"$ref": "https://json.schemastore.org/base.json#/definitions/path",
"type": "string"
},
{
"type": "array",
"uniqueItems": true,
"items": {
"$ref": "https://json.schemastore.org/base.json#/definitions/path",
"description": "A path pattern\nhttps://clangd.llvm.org/config.html#if"
}
}
]
},
"oneOrMoreFlags": {
"oneOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"uniqueItems": true,
"items": {
"description": "A flag\nhttps://clangd.llvm.org/config.html#compileflags",
"type": "string",
"minLength": 1
}
}
]
},
"clangTidyCheck": {
"type": "string",
"enum": [
"abseil-cleanup-ctad",
"abseil-duration-addition",
"abseil-duration-comparison",
"abseil-duration-conversion-cast",
"abseil-duration-division",
"abseil-duration-factory-float",
"abseil-duration-factory-scale",
"abseil-duration-subtraction",
"abseil-duration-unnecessary-conversion",
"abseil-faster-strsplit-delimiter",
"abseil-no-internal-dependencies",
"abseil-no-namespace",
"abseil-redundant-strcat-calls",
"abseil-str-cat-append",
"abseil-string-find-startswith",
"abseil-string-find-str-contains",
"abseil-time-comparison",
"abseil-time-subtraction",
"abseil-upgrade-duration-conversions",
"altera-id-dependent-backward-branch",
"altera-kernel-name-restriction",
"altera-single-work-item-barrier",
"altera-struct-pack-align",
"altera-unroll-loops",
"android-cloexec-accept",
"android-cloexec-accept4",
"android-cloexec-creat",
"android-cloexec-dup",
"android-cloexec-epoll-create",
"android-cloexec-epoll-create1",
"android-cloexec-fopen",
"android-cloexec-inotify-init",
"android-cloexec-inotify-init1",
"android-cloexec-memfd-create",
"android-cloexec-open",
"android-cloexec-pipe",
"android-cloexec-pipe2",
"android-cloexec-socket",
"android-comparison-in-temp-failure-retry",
"boost-use-to-string",
"bugprone-argument-comment",
"bugprone-assert-side-effect",
"bugprone-assignment-in-if-condition",
"bugprone-bad-signal-to-kill-thread",
"bugprone-bool-pointer-implicit-conversion",
"bugprone-branch-clone",
"bugprone-copy-constructor-init",
"bugprone-dangling-handle",
"bugprone-dynamic-static-initializers",
"bugprone-easily-swappable-parameters",
"bugprone-exception-escape",
"bugprone-fold-init-type",
"bugprone-forward-declaration-namespace",
"bugprone-forwarding-reference-overload",
"bugprone-implicit-widening-of-multiplication-result",
"bugprone-inaccurate-erase",
"bugprone-incorrect-roundings",
"bugprone-infinite-loop",
"bugprone-integer-division",
"bugprone-lambda-function-name",
"bugprone-macro-parentheses",
"bugprone-macro-repeated-side-effects",
"bugprone-misplaced-operator-in-strlen-in-alloc",
"bugprone-misplaced-pointer-arithmetic-in-alloc",
"bugprone-misplaced-widening-cast",
"bugprone-move-forwarding-reference",
"bugprone-multiple-statement-macro",
"bugprone-no-escape",
"bugprone-not-null-terminated-result",
"bugprone-parent-virtual-call",
"bugprone-posix-return",
"bugprone-redundant-branch-condition",
"bugprone-reserved-identifier",
"bugprone-shared-ptr-array-mismatch",
"bugprone-signal-handler",
"bugprone-signed-char-misuse",
"bugprone-sizeof-container",
"bugprone-sizeof-expression",
"bugprone-spuriously-wake-up-functions",
"bugprone-standalone-empty",
"bugprone-string-constructor",
"bugprone-string-integer-assignment",
"bugprone-string-literal-with-embedded-nul",
"bugprone-stringview-nullptr",
"bugprone-suspicious-enum-usage",
"bugprone-suspicious-include",
"bugprone-suspicious-memory-comparison",
"bugprone-suspicious-memset-usage",
"bugprone-suspicious-missing-comma",
"bugprone-suspicious-realloc-usage",
"bugprone-suspicious-semicolon",
"bugprone-suspicious-string-compare",
"bugprone-swapped-arguments",
"bugprone-terminating-continue",
"bugprone-throw-keyword-missing",
"bugprone-too-small-loop-variable",
"bugprone-unchecked-optional-access",
"bugprone-undefined-memory-manipulation",
"bugprone-undelegated-constructor",
"bugprone-unhandled-exception-at-new",
"bugprone-unhandled-self-assignment",
"bugprone-unused-raii",
"bugprone-unused-return-value",
"bugprone-use-after-move",
"bugprone-virtual-near-miss",
"cert-dcl21-cpp",
"cert-dcl50-cpp",
"cert-dcl58-cpp",
"cert-env33-c",
"cert-err33-c",
"cert-err34-c",
"cert-err52-cpp",
"cert-err58-cpp",
"cert-err60-cpp",
"cert-flp30-c",
"cert-mem57-cpp",
"cert-msc50-cpp",
"cert-msc51-cpp",
"cert-oop57-cpp",
"cert-oop58-cpp",
"clang-analyzer-core.DynamicTypePropagation",
"clang-analyzer-core.uninitialized.CapturedBlockVariable",
"clang-analyzer-cplusplus.InnerPointer",
"clang-analyzer-nullability.NullableReturnedFromNonnull",
"clang-analyzer-optin.osx.OSObjectCStyleCast",
"clang-analyzer-optin.performance.GCDAntipattern",
"clang-analyzer-optin.performance.Padding",
"clang-analyzer-optin.portability.UnixAPI",
"clang-analyzer-osx.MIG",
"clang-analyzer-osx.NumberObjectConversion",
"clang-analyzer-osx.OSObjectRetainCount",
"clang-analyzer-osx.ObjCProperty",
"clang-analyzer-osx.cocoa.AutoreleaseWrite",
"clang-analyzer-osx.cocoa.Loops",
"clang-analyzer-osx.cocoa.MissingSuperCall",
"clang-analyzer-osx.cocoa.NonNilReturnValue",
"clang-analyzer-osx.cocoa.RunLoopAutoreleaseLeak",
"clang-analyzer-valist.CopyToSelf",
"clang-analyzer-valist.Uninitialized",
"clang-analyzer-valist.Unterminated",
"concurrency-mt-unsafe",
"concurrency-thread-canceltype-asynchronous",
"cppcoreguidelines-avoid-const-or-ref-data-members",
"cppcoreguidelines-avoid-do-while",
"cppcoreguidelines-avoid-goto",
"cppcoreguidelines-avoid-non-const-global-variables",
"cppcoreguidelines-avoid-reference-coroutine-parameters",
"cppcoreguidelines-init-variables",
"cppcoreguidelines-interfaces-global-init",
"cppcoreguidelines-macro-usage",
"cppcoreguidelines-narrowing-conversions",
"cppcoreguidelines-no-malloc",
"cppcoreguidelines-owning-memory",
"cppcoreguidelines-prefer-member-initializer",
"cppcoreguidelines-pro-bounds-array-to-pointer-decay",
"cppcoreguidelines-pro-bounds-constant-array-index",
"cppcoreguidelines-pro-bounds-pointer-arithmetic",
"cppcoreguidelines-pro-type-const-cast",
"cppcoreguidelines-pro-type-cstyle-cast",
"cppcoreguidelines-pro-type-member-init",
"cppcoreguidelines-pro-type-reinterpret-cast",
"cppcoreguidelines-pro-type-static-cast-downcast",
"cppcoreguidelines-pro-type-union-access",
"cppcoreguidelines-pro-type-vararg",
"cppcoreguidelines-slicing",
"cppcoreguidelines-special-member-functions",
"cppcoreguidelines-virtual-class-destructor",
"darwin-avoid-spinlock",
"darwin-dispatch-once-nonstatic",
"fuchsia-default-arguments-calls",
"fuchsia-default-arguments-declarations",
"fuchsia-multiple-inheritance",
"fuchsia-overloaded-operator",
"fuchsia-statically-constructed-objects",
"fuchsia-trailing-return",
"fuchsia-virtual-inheritance",
"google-build-explicit-make-pair",
"google-build-namespaces",
"google-build-using-namespace",
"google-default-arguments",
"google-explicit-constructor",
"google-global-names-in-headers",
"google-objc-avoid-nsobject-new",
"google-objc-avoid-throwing-exception",
"google-objc-function-naming",
"google-objc-global-variable-declaration",
"google-readability-avoid-underscore-in-googletest-name",
"google-readability-casting",
"google-readability-todo",
"google-runtime-int",
"google-runtime-operator",
"google-upgrade-googletest-case",
"hicpp-avoid-goto",
"hicpp-exception-baseclass",
"hicpp-multiway-paths-covered",
"hicpp-no-assembler",
"hicpp-signed-bitwise",
"linuxkernel-must-use-errs",
"llvm-header-guard",
"llvm-include-order",
"llvm-namespace-comment",
"llvm-prefer-isa-or-dyn-cast-in-conditionals",
"llvm-prefer-register-over-unsigned",
"llvm-twine-local",
"llvmlibc-callee-namespace",
"llvmlibc-implementation-in-namespace",
"llvmlibc-restrict-system-libc-headers",
"misc-confusable-identifiers",
"misc-const-correctness",
"misc-definitions-in-headers",
"misc-misleading-bidirectional",
"misc-misleading-identifier",
"misc-misplaced-const",
"misc-new-delete-overloads",
"misc-no-recursion",
"misc-non-copyable-objects",
"misc-non-private-member-variables-in-classes",
"misc-redundant-expression",
"misc-static-assert",
"misc-throw-by-value-catch-by-reference",
"misc-unconventional-assign-operator",
"misc-uniqueptr-reset-release",
"misc-unused-alias-decls",
"misc-unused-parameters",
"misc-unused-using-decls",
"misc-use-anonymous-namespace",
"modernize-avoid-bind",
"modernize-avoid-c-arrays",
"modernize-concat-nested-namespaces",
"modernize-deprecated-headers",
"modernize-deprecated-ios-base-aliases",
"modernize-loop-convert",
"modernize-macro-to-enum",
"modernize-make-shared",
"modernize-make-unique",
"modernize-pass-by-value",
"modernize-raw-string-literal",
"modernize-redundant-void-arg",
"modernize-replace-auto-ptr",
"modernize-replace-disallow-copy-and-assign-macro",
"modernize-replace-random-shuffle",
"modernize-return-braced-init-list",
"modernize-shrink-to-fit",
"modernize-unary-static-assert",
"modernize-use-auto",
"modernize-use-bool-literals",
"modernize-use-default-member-init",
"modernize-use-emplace",
"modernize-use-equals-default",
"modernize-use-equals-delete",
"modernize-use-nodiscard",
"modernize-use-noexcept",
"modernize-use-nullptr",
"modernize-use-override",
"modernize-use-trailing-return-type",
"modernize-use-transparent-functors",
"modernize-use-uncaught-exceptions",
"modernize-use-using",
"mpi-buffer-deref",
"mpi-type-mismatch",
"objc-assert-equals",
"objc-avoid-nserror-init",
"objc-dealloc-in-category",
"objc-forbidden-subclassing",
"objc-missing-hash",
"objc-nsdate-formatter",
"objc-nsinvocation-argument-lifetime",
"objc-property-declaration",
"objc-super-self",
"openmp-exception-escape",
"openmp-use-default-none",
"performance-faster-string-find",
"performance-for-range-copy",
"performance-implicit-conversion-in-loop",
"performance-inefficient-algorithm",
"performance-inefficient-string-concatenation",
"performance-inefficient-vector-operation",
"performance-move-const-arg",
"performance-move-constructor-init",
"performance-no-automatic-move",
"performance-no-int-to-ptr",
"performance-noexcept-move-constructor",
"performance-trivially-destructible",
"performance-type-promotion-in-math-fn",
"performance-unnecessary-copy-initialization",
"performance-unnecessary-value-param",
"portability-restrict-system-includes",
"portability-simd-intrinsics",
"portability-std-allocator-const",
"readability-avoid-const-params-in-decls",
"readability-braces-around-statements",
"readability-const-return-type",
"readability-container-contains",
"readability-container-data-pointer",
"readability-container-size-empty",
"readability-convert-member-functions-to-static",
"readability-delete-null-pointer",
"readability-duplicate-include",
"readability-else-after-return",
"readability-function-cognitive-complexity",
"readability-function-size",
"readability-identifier-length",
"readability-identifier-naming",
"readability-implicit-bool-conversion",
"readability-inconsistent-declaration-parameter-name",
"readability-isolate-declaration",
"readability-magic-numbers",
"readability-make-member-function-const",
"readability-misleading-indentation",
"readability-misplaced-array-index",
"readability-named-parameter",
"readability-non-const-parameter",
"readability-qualified-auto",
"readability-redundant-access-specifiers",
"readability-redundant-control-flow",
"readability-redundant-declaration",
"readability-redundant-function-ptr-dereference",
"readability-redundant-member-init",
"readability-redundant-preprocessor",
"readability-redundant-smartptr-get",
"readability-redundant-string-cstr",
"readability-redundant-string-init",
"readability-simplify-boolean-expr",
"readability-simplify-subscript-expr",
"readability-static-accessed-through-instance",
"readability-static-definition-in-anonymous-namespace",
"readability-string-compare",
"readability-suspicious-call-argument",
"readability-uniqueptr-delete-release",
"readability-uppercase-literal-suffix",
"readability-use-anyofallof",
"zircon-temporary-objects"
]
},
"oneOrMoreDiagnostics": {
"oneOf": [
{
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"$ref": "#/definitions/clangTidyCheck"
}
]
},
{
"type": "array",
"uniqueItems": true,
"items": {
"description": "A diagnostic\nhttps://clangd.llvm.org/config.html#clangtidy",
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"$ref": "#/definitions/clangTidyCheck"
}
]
}
}
]
}
},
"properties": {
"If": {
"title": "conditions",
"description": "Conditions\nhttps://clangd.llvm.org/config.html#if",
"type": "object",
"properties": {
"PathMatch": {
"$ref": "#/definitions/oneOrMorePath",
"description": "Path patterns\nhttps://clangd.llvm.org/config.html#pathmatch",
"examples": [".*\\.h"]
},
"PathExclude": {
"$ref": "#/definitions/oneOrMorePath",
"description": "An exclude path pattern\nhttps://clangd.llvm.org/config.html#pathexclude",
"examples": ["include/llvm-c/.*"]
}
},
"additionalProperties": false
},
"CompileFlags": {
"title": "compilation flags",
"description": "Flag lists to be added or removed\nhttps://clangd.llvm.org/config.html#compileflags",
"type": "object",
"properties": {
"Add": {
"$ref": "#/definitions/oneOrMoreFlags",
"description": "Flags to be added to the compile command\nhttps://clangd.llvm.org/config.html#add",
"examples": [["-xc++", "-Wall"]]
},
"Remove": {
"$ref": "#/definitions/oneOrMoreFlags",
"description": "Flags to be removed from the compile command\nhttps://clangd.llvm.org/config.html#remove",
"examples": ["-W*"]
},
"CompilationDatabase": {
"description": "A directory to search for compilation database\nhttps://clangd.llvm.org/config.html#compilationdatabase",
"oneOf": [
{
"$ref": "https://json.schemastore.org/base.json#/definitions/path"
},
{
"enum": ["Ancestors", "None"]
}
]
},
"Compiler": {
"description": "An `argv[0]` replacement\nhttps://clangd.llvm.org/config.html#compiler",
"type": "string",
"minLength": 1,
"examples": ["clang++"]
}
},
"additionalProperties": false
},
"Index": {
"title": "code interpretation",
"description": "Code interpretation outside of the current file",
"type": "object",
"properties": {
"Background": {
"description": "Whether to produce a project index from files built in the background\nhttps://clangd.llvm.org/config.html#background",
"type": "string",
"enum": ["Build", "Skip"],
"default": "Build"
},
"External": {
"title": "index source",
"description": "An external index source\nhttps://clangd.llvm.org/config.html#external",
"oneOf": [
{
"type": "string",
"pattern": "[nN][oO][nN][eE]"
},
{
"required": ["File"],
"properties": {
"File": {
"$ref": "https://json.schemastore.org/base.json#/definitions/path",
"description": "A file\nhttps://clangd.llvm.org/config.html#external",
"examples": ["/abs/path/to/an/index.idx"]
}
},
"type": "object",
"additionalProperties": false
},
{
"required": ["Server"],
"properties": {
"Server": {
"description": "A server\nhttps://clangd.llvm.org/config.html#external",
"type": "string",
"examples": ["my.index.server.com:50051"]
},
"MountPoint": {
"$ref": "https://json.schemastore.org/base.json#/definitions/path",
"description": "A mount point\nhttps://clangd.llvm.org/config.html#external",
"examples": ["/files/under/this/project/"]
}
},
"type": "object",
"additionalProperties": false
}
]
},
"StandardLibrary": {
"description": "Whether to index a standard library\nhttps://clangd.llvm.org/config.html#standardlibrary",
"enum": ["Yes", "No"]
}
},
"additionalProperties": false
},
"Style": {
"title": "style",
"description": "A code base style\nhttps://clangd.llvm.org/config.html#style",
"type": "object",
"properties": {
"FullyQualifiedNamespaces": {
"description": "List of fully qualified namespaces\nhttps://clangd.llvm.org/config.html#fullyqualifiednamespaces",
"type": "array",
"items": {
"type": "string"
}
}
}
},
"Diagnostics": {
"title": "diagnostics",
"description": "Diagnostics\nhttps://clangd.llvm.org/config.html#diagnostics",
"type": "object",
"properties": {
"Suppress": {
"description": "Diagnostic codes that to be suppressed\nhttps://clangd.llvm.org/config.html#suppress",
"oneOf": [
{
"type": "string",
"const": "*"
},
{
"type": "array",
"uniqueItems": true,
"items": {
"description": "A diagnostic code that to be suppressed\nhttps://clangd.llvm.org/config.html#suppress",
"type": "string",
"minLength": 1
}
}
]
},
"ClangTidy": {
"title": "clangtidy options",
"description": "Clang-Tidy options\nhttps://clangd.llvm.org/config.html#clangtidy",
"type": "object",
"properties": {
"Add": {
"$ref": "#/definitions/oneOrMoreDiagnostics",
"description": "Checks to enable\nhttps://clangd.llvm.org/config.html#add-1",
"examples": ["modernize*"]
},
"Remove": {
"$ref": "#/definitions/oneOrMoreDiagnostics",
"description": "Checks to disable\nhttps://clangd.llvm.org/config.html#remove-1",
"examples": ["modernize-use-trailing-return-type"]
},
"CheckOptions": {
"description": "Check's options\nhttps://clangd.llvm.org/config.html#checkoptions",
"type": "object",
"examples": [
{
"readability-identifier-naming.VariableCase": "CamelCase"
}
]
}
},
"additionalProperties": false
},
"UnusedIncludes": {
"description": "Whether to enable Include Cleaner's unused includes diagnostics\nhttps://clangd.llvm.org/config.html#unusedincludes",
"type": "string",
"enum": ["None", "Strict"],
"default": "Strict"
},
"Includes": {
"type": "object",
"additionalProperties": false,
"properties": {
"IgnoreHeader": {
"description": "A list of regexes. Include Cleaner will not produce diagnostics for headers whose path is a suffix match for any of these\nhttps://clangd.llvm.org/config.html#ignoreheader",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
}
},
"MissingIncludes": {
"description": "Whether to enable Include Cleaner's missing includes diagnostics\nhttps://clangd.llvm.org/config.html#missingincludes",
"type": "string",
"enum": ["None", "Strict"],
"default": "None"
}
},
"additionalProperties": false
},
"Completion": {
"title": "completion options",
"description": "Completion options\nhttps://clangd.llvm.org/config.html#completion",
"type": "object",
"properties": {
"AllScopes": {
"description": "Whether to include suggestions from scopes that are not visible\nhttps://clangd.llvm.org/config.html#allscopes",
"type": "boolean"
}
},
"additionalProperties": false
},
"InlayHints": {
"title": "inlay-hint options",
"description": "Inlay-hints options\nhttps://clangd.llvm.org/config.html#inlayhints",
"type": "object",
"properties": {
"Enabled": {
"description": "Whether to enable inlay-hints\nhttps://clangd.llvm.org/config.html#enabled",
"type": "boolean"
},
"ParameterNames": {
"description": "Whether to enable inlay-hints for parameter names in function calls\nhttps://clangd.llvm.org/config.html#parameternames",
"type": "boolean"
},
"DeducedTypes": {
"description": "Whether to enable inlay-hints for deduced types\nhttps://clangd.llvm.org/config.html#deducedtypes",
"type": "boolean"
},
"Designators": {
"description": "Whether to enable inlay-hints for designators in aggregate initialization\nhttps://clangd.llvm.org/config.html#designators",
"type": "boolean"
},
"BlockEnd": {
"description": "A boolean that enables/disables inlay-hints for block end comments\nhttps://clangd.llvm.org/config.html#blockend",
"type": "boolean"
},
"TypeNameLimit": {
"description": "Character limit for type hints. Hints that would be longer are not shown. 0 means no limit.\nhttps://clangd.llvm.org/config.html#typenamelimit",
"type": "number",
"minimum": 0
}
},
"additionalProperties": false
},
"Hover": {
"title": "hover options",
"description": "Hover card's options\nhttps://clangd.llvm.org/config.html#hover",
"type": "object",
"properties": {
"ShowAKA": {
"description": "Whether to display desugared types\nhttps://clangd.llvm.org/config.html#showaka",
"type": "boolean"
}
},
"additionalProperties": false
},
"SemanticTokens": {
"description": "Configure semantic highlighting\nhttps://clangd.llvm.org/config.html#semantic-tokens",
"type": "object",
"additionalProperties": false,
"properties": {
"DisabledKinds": {
"description": "Specify semantic token kinds that clangd should not send to client\nhttps://clangd.llvm.org/config.html#disabledkinds",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"DisabledModifiers": {
"description": "Specify semantic token modifiers that clangd should not send to client\nhttps://clangd.llvm.org/config.html#disabledmodifiers",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
}
}
},
"type": "object"
}