{"owner":"micro-editor","repo":"micro","hasSkills":true,"totalSkillsCount":4,"totalTokensCount":1867,"categories":["plugin-manifest","anthropic-skill"],"hasMcp":false,"mcpConfig":null,"found":["runtime/plugins/literate/README.md","runtime/plugins/comment/help/comment.md","runtime/plugins/linter/help/linter.md","runtime/plugins/status/help/status.md"],"skills":{"runtime/plugins/literate/README.md":"# Literate Micro\n\nSupport for reading `.lit` files from [zyedidia/Literate](https://github.com/zyedidia/Literate).\n\nThis plugin will automatically detect the filetype and highlight the correct language inside the code blocks.\n","runtime/plugins/comment/help/comment.md":"# Comment Plugin\n\nThe comment plugin provides auto commenting/uncommenting.\nThe default binding to comment/uncomment a line is `Alt-/`\nand `CtrlUnderscore`, which is equivalent in most terminals\nto `Ctrl-/`. You can easily modify that in your `bindings.json`\nfile:\n\n```jsonc\n{\n    \"Alt-g\": \"lua:comment.comment\"\n}\n```\n\nYou can also execute a command which will do the same thing as\nthe binding:\n\n```\n> comment\n```\n\nIf you have a selection, the plugin will comment all the lines\nselected.\n\nThe comment type will be auto detected based on the filetype,\nbut it is only available for certain filetypes:\n\n* apacheconf: `# %s`\n* bat: `:: %s`\n* c: `// %s`\n* c++: `// %s`\n* cmake: `# %s`\n* conf: `# %s`\n* crystal: `# %s`\n* css: `/* %s */`\n* d: `// %s`\n* dart: `// %s`\n* dockerfile: `# %s`\n* elm: `-- %s`\n* fish: `# %s`\n* gdscript: `# %s`\n* glsl: `// %s`\n* go: `// %s`\n* haskell: `-- %s`\n* html: `<!-- %s -->`\n* ini: `; %s`\n* java: `// %s`\n* javascript: `// %s`\n* jinja2: `{# %s #}`\n* json: `// %s`\n* julia: `# %s`\n* kotlin: `// %s`\n* lua: `-- %s`\n* markdown: `<!-- %s -->`\n* nginx: `# %s`\n* nim: `# %s`\n* objective-c: `// %s`\n* pascal: `{ %s }`\n* perl: `# %s`\n* php: `// %s`\n* pony: `// %s`\n* powershell: `# %s`\n* proto: `// %s`\n* python: `# %s`\n* python3: `# %s`\n* ruby: `# %s`\n* rust: `// %s`\n* scala: `// %s`\n* shell: `# %s`\n* sql: `-- %s`\n* swift: `// %s`\n* tex: `% %s`\n* toml: `# %s`\n* twig: `{# %s #}`\n* v: `// %s`\n* xml: `<!-- %s -->`\n* yaml: `# %s`\n* zig: `// %s`\n* zscript: `// %s`\n* zsh: `# %s`\n\nIf your filetype is not available here, you can simply modify\nthe `comment.type` option:\n\n```\nset comment.type \"/* %s */\"\n```\n\nOr in your `settings.json`:\n\n```jsonc\n{\n    \"*.c\": {\n        \"comment.type\": \"/* %s */\"\n    }\n}\n```\n\n`commenttype` (without the dot) is the legacy option that is\nsuperseded by `comment.type`. `commenttype` is still supported\nbut deprecated.\n**Use `comment.type` instead.**\n","runtime/plugins/linter/help/linter.md":"# Linter\n\nThe linter plugin runs a compiler or linter on your source code\nand parses the resulting output so that the messages and line numbers\ncan be viewed from within micro. By default, the plugin supports the\nfollowing filetypes and linters:\n\n* **c**: gcc\n* **c++**: g++\n* **d**: dmd\n* **d**: ldc2\n* **d**: gdc\n* **go**: go build\n* **go**: go vet\n* **haskell**: hlint\n* **java**: javac\n* **javascript**: jshint\n* **javascript**: eslint\n* **literate**: lit\n* **lua**: luacheck\n* **nim**: nim\n* **nix**: nix-linter\n* **objective-c**: clang\n* **python**: flake8\n* **python**: mypy\n* **python**: pyflakes\n* **python**: pylint\n* **python**: ruff\n* **rust**: cargo clippy\n* **shell**: shfmt\n* **shell**: shellcheck\n* **swift**: swiftc (MacOS and Linux only)\n* **yaml**: yamllint\n\nIf the linter plugin is enabled and the file corresponds to one of\nthese filetypes, each time the buffer is saved, or when the `> lint`\ncommand is executed, micro will run the corresponding utility in the\nbackground and display the messages when it completes.\n\nThe linter plugin also allows users to extend the supported filetypes.\nFrom inside another micro plugin, the function `linter.makeLinter` can\nbe called to register a new filetype. Here is the spec for the `makeLinter`\nfunction:\n\n`linter.makeLinter(name, filetype, cmd, args, errorformat, os, whitelist, domatch, loffset, coffset, callback)`\n\n* **name**: name of the linter\n* **filetype**: filetype to check for to use linter\n* **cmd**: main linter process that is executed\n* **args**: arguments to pass to the linter process\n    * use %f to refer to the current file name\n    * use %d to refer to the current directory name\n* **errorformat**: how to parse the linter/compiler process output\n    %f: file, %l: line number, %m: error/warning message\n* **os**: list of OSs this linter is supported or unsupported on\n    optional param, default: {}\n* **whitelist**: should the OS list be a blacklist (do not run the linter for these OSs)\n           or a whitelist (only run the linter for these OSs)\n    optional param, default: false (should blacklist)\n* **domatch**: should the filetype be interpreted as a lua pattern to match with\n         the actual filetype, or should the linter only activate on an exact match\n    optional param, default: false (require exact match)\n* **loffset**: line offset will be added to the line number returned by the linter\n         useful if the linter returns 0-indexed lines\n    optional param, default: 0\n* **coffset**: column offset will be added to the col number returned by the linter\n         useful if the linter returns 0-indexed columns\n    optional param, default: 0\n* **callback**: function to call before executing the linter, if it returns\n          false the lint is canceled. The callback is passed the buf.\n    optional param, default: nil\n\nBelow is an example for including a linter for any filetype using\nthe `misspell` linter which checks for misspelled words in a file.\n\n```lua\nfunction init()\n    -- uses the default linter plugin\n    -- matches any filetype\n    linter.makeLinter(\"misspell\", \"\", \"misspell\", {\"%f\"}, \"%f:%l:%c: %m\", {}, false, true)\nend\n```\n\nHere is an example for a more typical use-case, where the linter will only match one filetype (C in this case):\n\n```lua\nfunction init()\n    linter.makeLinter(\"gcc\", \"c\", \"gcc\", {\"-fsyntax-only\", \"-Wall\", \"-Wextra\", \"%f\"}, \"%f:%l:%c:.+: %m\")\nend\n```\n","runtime/plugins/status/help/status.md":"# Status\n\nThe status plugin provides some functions for modifying the status line.\n\nUsing the `statusformatl` and `statusformatr` options, the exact contents\nof the status line can be modified. Please see the documentation for\nthose options (`> help options`) for more information.\n\nThis plugin provides functions that can be used in the status line format:\n\n* `status.branch`: returns the name of the current git branch in the repository\n   where the file is located.\n* `status.hash`: returns the hash of the current git commit in the repository\n   where the file is located.\n* `status.paste`: returns \"\" if the paste option is disabled and \"PASTE\"\n   if it is enabled.\n* `status.lines`: returns the number of lines in the buffer.\n* `status.vcol`: returns the visual column number of the cursor.\n* `status.bytes`: returns the number of bytes in the current buffer.\n* `status.size`: returns the size of the current buffer in a human-readable\n   format.\n"},"files":{"runtime/plugins/literate/README.md":"# Literate Micro\n\nSupport for reading `.lit` files from [zyedidia/Literate](https://github.com/zyedidia/Literate).\n\nThis plugin will automatically detect the filetype and highlight the correct language inside the code blocks.\n","runtime/plugins/comment/help/comment.md":"# Comment Plugin\n\nThe comment plugin provides auto commenting/uncommenting.\nThe default binding to comment/uncomment a line is `Alt-/`\nand `CtrlUnderscore`, which is equivalent in most terminals\nto `Ctrl-/`. You can easily modify that in your `bindings.json`\nfile:\n\n```jsonc\n{\n    \"Alt-g\": \"lua:comment.comment\"\n}\n```\n\nYou can also execute a command which will do the same thing as\nthe binding:\n\n```\n> comment\n```\n\nIf you have a selection, the plugin will comment all the lines\nselected.\n\nThe comment type will be auto detected based on the filetype,\nbut it is only available for certain filetypes:\n\n* apacheconf: `# %s`\n* bat: `:: %s`\n* c: `// %s`\n* c++: `// %s`\n* cmake: `# %s`\n* conf: `# %s`\n* crystal: `# %s`\n* css: `/* %s */`\n* d: `// %s`\n* dart: `// %s`\n* dockerfile: `# %s`\n* elm: `-- %s`\n* fish: `# %s`\n* gdscript: `# %s`\n* glsl: `// %s`\n* go: `// %s`\n* haskell: `-- %s`\n* html: `<!-- %s -->`\n* ini: `; %s`\n* java: `// %s`\n* javascript: `// %s`\n* jinja2: `{# %s #}`\n* json: `// %s`\n* julia: `# %s`\n* kotlin: `// %s`\n* lua: `-- %s`\n* markdown: `<!-- %s -->`\n* nginx: `# %s`\n* nim: `# %s`\n* objective-c: `// %s`\n* pascal: `{ %s }`\n* perl: `# %s`\n* php: `// %s`\n* pony: `// %s`\n* powershell: `# %s`\n* proto: `// %s`\n* python: `# %s`\n* python3: `# %s`\n* ruby: `# %s`\n* rust: `// %s`\n* scala: `// %s`\n* shell: `# %s`\n* sql: `-- %s`\n* swift: `// %s`\n* tex: `% %s`\n* toml: `# %s`\n* twig: `{# %s #}`\n* v: `// %s`\n* xml: `<!-- %s -->`\n* yaml: `# %s`\n* zig: `// %s`\n* zscript: `// %s`\n* zsh: `# %s`\n\nIf your filetype is not available here, you can simply modify\nthe `comment.type` option:\n\n```\nset comment.type \"/* %s */\"\n```\n\nOr in your `settings.json`:\n\n```jsonc\n{\n    \"*.c\": {\n        \"comment.type\": \"/* %s */\"\n    }\n}\n```\n\n`commenttype` (without the dot) is the legacy option that is\nsuperseded by `comment.type`. `commenttype` is still supported\nbut deprecated.\n**Use `comment.type` instead.**\n","runtime/plugins/linter/help/linter.md":"# Linter\n\nThe linter plugin runs a compiler or linter on your source code\nand parses the resulting output so that the messages and line numbers\ncan be viewed from within micro. By default, the plugin supports the\nfollowing filetypes and linters:\n\n* **c**: gcc\n* **c++**: g++\n* **d**: dmd\n* **d**: ldc2\n* **d**: gdc\n* **go**: go build\n* **go**: go vet\n* **haskell**: hlint\n* **java**: javac\n* **javascript**: jshint\n* **javascript**: eslint\n* **literate**: lit\n* **lua**: luacheck\n* **nim**: nim\n* **nix**: nix-linter\n* **objective-c**: clang\n* **python**: flake8\n* **python**: mypy\n* **python**: pyflakes\n* **python**: pylint\n* **python**: ruff\n* **rust**: cargo clippy\n* **shell**: shfmt\n* **shell**: shellcheck\n* **swift**: swiftc (MacOS and Linux only)\n* **yaml**: yamllint\n\nIf the linter plugin is enabled and the file corresponds to one of\nthese filetypes, each time the buffer is saved, or when the `> lint`\ncommand is executed, micro will run the corresponding utility in the\nbackground and display the messages when it completes.\n\nThe linter plugin also allows users to extend the supported filetypes.\nFrom inside another micro plugin, the function `linter.makeLinter` can\nbe called to register a new filetype. Here is the spec for the `makeLinter`\nfunction:\n\n`linter.makeLinter(name, filetype, cmd, args, errorformat, os, whitelist, domatch, loffset, coffset, callback)`\n\n* **name**: name of the linter\n* **filetype**: filetype to check for to use linter\n* **cmd**: main linter process that is executed\n* **args**: arguments to pass to the linter process\n    * use %f to refer to the current file name\n    * use %d to refer to the current directory name\n* **errorformat**: how to parse the linter/compiler process output\n    %f: file, %l: line number, %m: error/warning message\n* **os**: list of OSs this linter is supported or unsupported on\n    optional param, default: {}\n* **whitelist**: should the OS list be a blacklist (do not run the linter for these OSs)\n           or a whitelist (only run the linter for these OSs)\n    optional param, default: false (should blacklist)\n* **domatch**: should the filetype be interpreted as a lua pattern to match with\n         the actual filetype, or should the linter only activate on an exact match\n    optional param, default: false (require exact match)\n* **loffset**: line offset will be added to the line number returned by the linter\n         useful if the linter returns 0-indexed lines\n    optional param, default: 0\n* **coffset**: column offset will be added to the col number returned by the linter\n         useful if the linter returns 0-indexed columns\n    optional param, default: 0\n* **callback**: function to call before executing the linter, if it returns\n          false the lint is canceled. The callback is passed the buf.\n    optional param, default: nil\n\nBelow is an example for including a linter for any filetype using\nthe `misspell` linter which checks for misspelled words in a file.\n\n```lua\nfunction init()\n    -- uses the default linter plugin\n    -- matches any filetype\n    linter.makeLinter(\"misspell\", \"\", \"misspell\", {\"%f\"}, \"%f:%l:%c: %m\", {}, false, true)\nend\n```\n\nHere is an example for a more typical use-case, where the linter will only match one filetype (C in this case):\n\n```lua\nfunction init()\n    linter.makeLinter(\"gcc\", \"c\", \"gcc\", {\"-fsyntax-only\", \"-Wall\", \"-Wextra\", \"%f\"}, \"%f:%l:%c:.+: %m\")\nend\n```\n","runtime/plugins/status/help/status.md":"# Status\n\nThe status plugin provides some functions for modifying the status line.\n\nUsing the `statusformatl` and `statusformatr` options, the exact contents\nof the status line can be modified. Please see the documentation for\nthose options (`> help options`) for more information.\n\nThis plugin provides functions that can be used in the status line format:\n\n* `status.branch`: returns the name of the current git branch in the repository\n   where the file is located.\n* `status.hash`: returns the hash of the current git commit in the repository\n   where the file is located.\n* `status.paste`: returns \"\" if the paste option is disabled and \"PASTE\"\n   if it is enabled.\n* `status.lines`: returns the number of lines in the buffer.\n* `status.vcol`: returns the visual column number of the cursor.\n* `status.bytes`: returns the number of bytes in the current buffer.\n* `status.size`: returns the size of the current buffer in a human-readable\n   format.\n"},"items":[{"name":"comment.md","path":"runtime/plugins/comment/help/comment.md","rawUrl":"https://raw.githubusercontent.com/micro-editor/micro/HEAD/runtime/plugins/comment/help/comment.md","title":"Help Skill","category":"anthropic-skill","format":"markdown","content":"# Comment Plugin\n\nThe comment plugin provides auto commenting/uncommenting.\nThe default binding to comment/uncomment a line is `Alt-/`\nand `CtrlUnderscore`, which is equivalent in most terminals\nto `Ctrl-/`. You can easily modify that in your `bindings.json`\nfile:\n\n```jsonc\n{\n    \"Alt-g\": \"lua:comment.comment\"\n}\n```\n\nYou can also execute a command which will do the same thing as\nthe binding:\n\n```\n> comment\n```\n\nIf you have a selection, the plugin will comment all the lines\nselected.\n\nThe comment type will be auto detected based on the filetype,\nbut it is only available for certain filetypes:\n\n* apacheconf: `# %s`\n* bat: `:: %s`\n* c: `// %s`\n* c++: `// %s`\n* cmake: `# %s`\n* conf: `# %s`\n* crystal: `# %s`\n* css: `/* %s */`\n* d: `// %s`\n* dart: `// %s`\n* dockerfile: `# %s`\n* elm: `-- %s`\n* fish: `# %s`\n* gdscript: `# %s`\n* glsl: `// %s`\n* go: `// %s`\n* haskell: `-- %s`\n* html: `<!-- %s -->`\n* ini: `; %s`\n* java: `// %s`\n* javascript: `// %s`\n* jinja2: `{# %s #}`\n* json: `// %s`\n* julia: `# %s`\n* kotlin: `// %s`\n* lua: `-- %s`\n* markdown: `<!-- %s -->`\n* nginx: `# %s`\n* nim: `# %s`\n* objective-c: `// %s`\n* pascal: `{ %s }`\n* perl: `# %s`\n* php: `// %s`\n* pony: `// %s`\n* powershell: `# %s`\n* proto: `// %s`\n* python: `# %s`\n* python3: `# %s`\n* ruby: `# %s`\n* rust: `// %s`\n* scala: `// %s`\n* shell: `# %s`\n* sql: `-- %s`\n* swift: `// %s`\n* tex: `% %s`\n* toml: `# %s`\n* twig: `{# %s #}`\n* v: `// %s`\n* xml: `<!-- %s -->`\n* yaml: `# %s`\n* zig: `// %s`\n* zscript: `// %s`\n* zsh: `# %s`\n\nIf your filetype is not available here, you can simply modify\nthe `comment.type` option:\n\n```\nset comment.type \"/* %s */\"\n```\n\nOr in your `settings.json`:\n\n```jsonc\n{\n    \"*.c\": {\n        \"comment.type\": \"/* %s */\"\n    }\n}\n```\n\n`commenttype` (without the dot) is the legacy option that is\nsuperseded by `comment.type`. `commenttype` is still supported\nbut deprecated.\n**Use `comment.type` instead.**\n","isInternal":false,"tokens":698,"sizeBytes":1898},{"name":"linter.md","path":"runtime/plugins/linter/help/linter.md","rawUrl":"https://raw.githubusercontent.com/micro-editor/micro/HEAD/runtime/plugins/linter/help/linter.md","title":"Help Skill","category":"anthropic-skill","format":"markdown","content":"# Linter\n\nThe linter plugin runs a compiler or linter on your source code\nand parses the resulting output so that the messages and line numbers\ncan be viewed from within micro. By default, the plugin supports the\nfollowing filetypes and linters:\n\n* **c**: gcc\n* **c++**: g++\n* **d**: dmd\n* **d**: ldc2\n* **d**: gdc\n* **go**: go build\n* **go**: go vet\n* **haskell**: hlint\n* **java**: javac\n* **javascript**: jshint\n* **javascript**: eslint\n* **literate**: lit\n* **lua**: luacheck\n* **nim**: nim\n* **nix**: nix-linter\n* **objective-c**: clang\n* **python**: flake8\n* **python**: mypy\n* **python**: pyflakes\n* **python**: pylint\n* **python**: ruff\n* **rust**: cargo clippy\n* **shell**: shfmt\n* **shell**: shellcheck\n* **swift**: swiftc (MacOS and Linux only)\n* **yaml**: yamllint\n\nIf the linter plugin is enabled and the file corresponds to one of\nthese filetypes, each time the buffer is saved, or when the `> lint`\ncommand is executed, micro will run the corresponding utility in the\nbackground and display the messages when it completes.\n\nThe linter plugin also allows users to extend the supported filetypes.\nFrom inside another micro plugin, the function `linter.makeLinter` can\nbe called to register a new filetype. Here is the spec for the `makeLinter`\nfunction:\n\n`linter.makeLinter(name, filetype, cmd, args, errorformat, os, whitelist, domatch, loffset, coffset, callback)`\n\n* **name**: name of the linter\n* **filetype**: filetype to check for to use linter\n* **cmd**: main linter process that is executed\n* **args**: arguments to pass to the linter process\n    * use %f to refer to the current file name\n    * use %d to refer to the current directory name\n* **errorformat**: how to parse the linter/compiler process output\n    %f: file, %l: line number, %m: error/warning message\n* **os**: list of OSs this linter is supported or unsupported on\n    optional param, default: {}\n* **whitelist**: should the OS list be a blacklist (do not run the linter for these OSs)\n           or a whitelist (only run the linter for these OSs)\n    optional param, default: false (should blacklist)\n* **domatch**: should the filetype be interpreted as a lua pattern to match with\n         the actual filetype, or should the linter only activate on an exact match\n    optional param, default: false (require exact match)\n* **loffset**: line offset will be added to the line number returned by the linter\n         useful if the linter returns 0-indexed lines\n    optional param, default: 0\n* **coffset**: column offset will be added to the col number returned by the linter\n         useful if the linter returns 0-indexed columns\n    optional param, default: 0\n* **callback**: function to call before executing the linter, if it returns\n          false the lint is canceled. The callback is passed the buf.\n    optional param, default: nil\n\nBelow is an example for including a linter for any filetype using\nthe `misspell` linter which checks for misspelled words in a file.\n\n```lua\nfunction init()\n    -- uses the default linter plugin\n    -- matches any filetype\n    linter.makeLinter(\"misspell\", \"\", \"misspell\", {\"%f\"}, \"%f:%l:%c: %m\", {}, false, true)\nend\n```\n\nHere is an example for a more typical use-case, where the linter will only match one filetype (C in this case):\n\n```lua\nfunction init()\n    linter.makeLinter(\"gcc\", \"c\", \"gcc\", {\"-fsyntax-only\", \"-Wall\", \"-Wextra\", \"%f\"}, \"%f:%l:%c:.+: %m\")\nend\n```\n","isInternal":false,"tokens":911,"sizeBytes":3401},{"name":"status.md","path":"runtime/plugins/status/help/status.md","rawUrl":"https://raw.githubusercontent.com/micro-editor/micro/HEAD/runtime/plugins/status/help/status.md","title":"Help Skill","category":"anthropic-skill","format":"markdown","content":"# Status\n\nThe status plugin provides some functions for modifying the status line.\n\nUsing the `statusformatl` and `statusformatr` options, the exact contents\nof the status line can be modified. Please see the documentation for\nthose options (`> help options`) for more information.\n\nThis plugin provides functions that can be used in the status line format:\n\n* `status.branch`: returns the name of the current git branch in the repository\n   where the file is located.\n* `status.hash`: returns the hash of the current git commit in the repository\n   where the file is located.\n* `status.paste`: returns \"\" if the paste option is disabled and \"PASTE\"\n   if it is enabled.\n* `status.lines`: returns the number of lines in the buffer.\n* `status.vcol`: returns the visual column number of the cursor.\n* `status.bytes`: returns the number of bytes in the current buffer.\n* `status.size`: returns the size of the current buffer in a human-readable\n   format.\n","isInternal":false,"tokens":210,"sizeBytes":953},{"name":"README.md","path":"runtime/plugins/literate/README.md","rawUrl":"https://raw.githubusercontent.com/micro-editor/micro/HEAD/runtime/plugins/literate/README.md","title":"literate Documentation","category":"plugin-manifest","format":"markdown","content":"# Literate Micro\n\nSupport for reading `.lit` files from [zyedidia/Literate](https://github.com/zyedidia/Literate).\n\nThis plugin will automatically detect the filetype and highlight the correct language inside the code blocks.\n","isInternal":false,"tokens":48,"sizeBytes":226}],"systemPromptSnippet":"<yakaai_skills repo=\"micro-editor/micro\">\n<!-- File: runtime/plugins/comment/help/comment.md (Tokens: ~698 | Category: anthropic-skill) -->\n# Comment Plugin\n\nThe comment plugin provides auto commenting/uncommenting.\nThe default binding to comment/uncomment a line is `Alt-/`\nand `CtrlUnderscore`, which is equivalent in most terminals\nto `Ctrl-/`. You can easily modify that in your `bindings.json`\nfile:\n\n```jsonc\n{\n    \"Alt-g\": \"lua:comment.comment\"\n}\n```\n\nYou can also execute a command which will do the same thing as\nthe binding:\n\n```\n> comment\n```\n\nIf you have a selection, the plugin will comment all the lines\nselected.\n\nThe comment type will be auto detected based on the filetype,\nbut it is only available for certain filetypes:\n\n* apacheconf: `# %s`\n* bat: `:: %s`\n* c: `// %s`\n* c++: `// %s`\n* cmake: `# %s`\n* conf: `# %s`\n* crystal: `# %s`\n* css: `/* %s */`\n* d: `// %s`\n* dart: `// %s`\n* dockerfile: `# %s`\n* elm: `-- %s`\n* fish: `# %s`\n* gdscript: `# %s`\n* glsl: `// %s`\n* go: `// %s`\n* haskell: `-- %s`\n* html: `<!-- %s -->`\n* ini: `; %s`\n* java: `// %s`\n* javascript: `// %s`\n* jinja2: `{# %s #}`\n* json: `// %s`\n* julia: `# %s`\n* kotlin: `// %s`\n* lua: `-- %s`\n* markdown: `<!-- %s -->`\n* nginx: `# %s`\n* nim: `# %s`\n* objective-c: `// %s`\n* pascal: `{ %s }`\n* perl: `# %s`\n* php: `// %s`\n* pony: `// %s`\n* powershell: `# %s`\n* proto: `// %s`\n* python: `# %s`\n* python3: `# %s`\n* ruby: `# %s`\n* rust: `// %s`\n* scala: `// %s`\n* shell: `# %s`\n* sql: `-- %s`\n* swift: `// %s`\n* tex: `% %s`\n* toml: `# %s`\n* twig: `{# %s #}`\n* v: `// %s`\n* xml: `<!-- %s -->`\n* yaml: `# %s`\n* zig: `// %s`\n* zscript: `// %s`\n* zsh: `# %s`\n\nIf your filetype is not available here, you can simply modify\nthe `comment.type` option:\n\n```\nset comment.type \"/* %s */\"\n```\n\nOr in your `settings.json`:\n\n```jsonc\n{\n    \"*.c\": {\n        \"comment.type\": \"/* %s */\"\n    }\n}\n```\n\n`commenttype` (without the dot) is the legacy option that is\nsuperseded by `comment.type`. `commenttype` is still supported\nbut deprecated.\n**Use `comment.type` instead.**\n\n<!-- File: runtime/plugins/linter/help/linter.md (Tokens: ~911 | Category: anthropic-skill) -->\n# Linter\n\nThe linter plugin runs a compiler or linter on your source code\nand parses the resulting output so that the messages and line numbers\ncan be viewed from within micro. By default, the plugin supports the\nfollowing filetypes and linters:\n\n* **c**: gcc\n* **c++**: g++\n* **d**: dmd\n* **d**: ldc2\n* **d**: gdc\n* **go**: go build\n* **go**: go vet\n* **haskell**: hlint\n* **java**: javac\n* **javascript**: jshint\n* **javascript**: eslint\n* **literate**: lit\n* **lua**: luacheck\n* **nim**: nim\n* **nix**: nix-linter\n* **objective-c**: clang\n* **python**: flake8\n* **python**: mypy\n* **python**: pyflakes\n* **python**: pylint\n* **python**: ruff\n* **rust**: cargo clippy\n* **shell**: shfmt\n* **shell**: shellcheck\n* **swift**: swiftc (MacOS and Linux only)\n* **yaml**: yamllint\n\nIf the linter plugin is enabled and the file corresponds to one of\nthese filetypes, each time the buffer is saved, or when the `> lint`\ncommand is executed, micro will run the corresponding utility in the\nbackground and display the messages when it completes.\n\nThe linter plugin also allows users to extend the supported filetypes.\nFrom inside another micro plugin, the function `linter.makeLinter` can\nbe called to register a new filetype. Here is the spec for the `makeLinter`\nfunction:\n\n`linter.makeLinter(name, filetype, cmd, args, errorformat, os, whitelist, domatch, loffset, coffset, callback)`\n\n* **name**: name of the linter\n* **filetype**: filetype to check for to use linter\n* **cmd**: main linter process that is executed\n* **args**: arguments to pass to the linter process\n    * use %f to refer to the current file name\n    * use %d to refer to the current directory name\n* **errorformat**: how to parse the linter/compiler process output\n    %f: file, %l: line number, %m: error/warning message\n* **os**: list of OSs this linter is supported or unsupported on\n    optional param, default: {}\n* **whitelist**: should the OS list be a blacklist (do not run the linter for these OSs)\n           or a whitelist (only run the linter for these OSs)\n    optional param, default: false (should blacklist)\n* **domatch**: should the filetype be interpreted as a lua pattern to match with\n         the actual filetype, or should the linter only activate on an exact match\n    optional param, default: false (require exact match)\n* **loffset**: line offset will be added to the line number returned by the linter\n         useful if the linter returns 0-indexed lines\n    optional param, default: 0\n* **coffset**: column offset will be added to the col number returned by the linter\n         useful if the linter returns 0-indexed columns\n    optional param, default: 0\n* **callback**: function to call before executing the linter, if it returns\n          false the lint is canceled. The callback is passed the buf.\n    optional param, default: nil\n\nBelow is an example for including a linter for any filetype using\nthe `misspell` linter which checks for misspelled words in a file.\n\n```lua\nfunction init()\n    -- uses the default linter plugin\n    -- matches any filetype\n    linter.makeLinter(\"misspell\", \"\", \"misspell\", {\"%f\"}, \"%f:%l:%c: %m\", {}, false, true)\nend\n```\n\nHere is an example for a more typical use-case, where the linter will only match one filetype (C in this case):\n\n```lua\nfunction init()\n    linter.makeLinter(\"gcc\", \"c\", \"gcc\", {\"-fsyntax-only\", \"-Wall\", \"-Wextra\", \"%f\"}, \"%f:%l:%c:.+: %m\")\nend\n```\n\n<!-- File: runtime/plugins/status/help/status.md (Tokens: ~210 | Category: anthropic-skill) -->\n# Status\n\nThe status plugin provides some functions for modifying the status line.\n\nUsing the `statusformatl` and `statusformatr` options, the exact contents\nof the status line can be modified. Please see the documentation for\nthose options (`> help options`) for more information.\n\nThis plugin provides functions that can be used in the status line format:\n\n* `status.branch`: returns the name of the current git branch in the repository\n   where the file is located.\n* `status.hash`: returns the hash of the current git commit in the repository\n   where the file is located.\n* `status.paste`: returns \"\" if the paste option is disabled and \"PASTE\"\n   if it is enabled.\n* `status.lines`: returns the number of lines in the buffer.\n* `status.vcol`: returns the visual column number of the cursor.\n* `status.bytes`: returns the number of bytes in the current buffer.\n* `status.size`: returns the size of the current buffer in a human-readable\n   format.\n\n<!-- File: runtime/plugins/literate/README.md (Tokens: ~48 | Category: plugin-manifest) -->\n# Literate Micro\n\nSupport for reading `.lit` files from [zyedidia/Literate](https://github.com/zyedidia/Literate).\n\nThis plugin will automatically detect the filetype and highlight the correct language inside the code blocks.\n</yakaai_skills>"}