{"id":13898103,"url":"https://github.com/Beaglefoot/awk-language-server","last_synced_at":"2025-07-17T15:32:08.116Z","repository":{"id":37010351,"uuid":"396027980","full_name":"Beaglefoot/awk-language-server","owner":"Beaglefoot","description":"Language Server for AWK and associated VSCode client extension","archived":false,"fork":false,"pushed_at":"2024-11-19T02:51:26.000Z","size":799,"stargazers_count":105,"open_issues_count":8,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-28T19:17:39.660Z","etag":null,"topics":["awk","gawk","language-server","language-server-protocol","lsp"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=beaglefoot.awk-ide-vscode","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Beaglefoot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-14T14:09:07.000Z","updated_at":"2025-06-20T03:30:12.000Z","dependencies_parsed_at":"2023-01-17T13:01:12.838Z","dependency_job_id":"448c597b-8ba9-4d65-8933-686ba10c8283","html_url":"https://github.com/Beaglefoot/awk-language-server","commit_stats":{"total_commits":245,"total_committers":7,"mean_commits":35.0,"dds":0.0897959183673469,"last_synced_commit":"ee19c269415e2c6ccb52e051f6ac162d32365071"},"previous_names":[],"tags_count":51,"template":false,"template_full_name":null,"purl":"pkg:github/Beaglefoot/awk-language-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beaglefoot%2Fawk-language-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beaglefoot%2Fawk-language-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beaglefoot%2Fawk-language-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beaglefoot%2Fawk-language-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Beaglefoot","download_url":"https://codeload.github.com/Beaglefoot/awk-language-server/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beaglefoot%2Fawk-language-server/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265622682,"owners_count":23800020,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["awk","gawk","language-server","language-server-protocol","lsp"],"created_at":"2024-08-06T18:04:04.751Z","updated_at":"2025-07-17T15:32:07.734Z","avatar_url":"https://github.com/Beaglefoot.png","language":"TypeScript","readme":"# AWK Language Server\n\n[![tests](https://github.com/Beaglefoot/awk-language-server/actions/workflows/tests.yml/badge.svg)](https://github.com/Beaglefoot/awk-language-server/actions/workflows/tests.yml)\n[![npm](https://img.shields.io/npm/v/awk-language-server)](https://www.npmjs.com/package/awk-language-server)\n\nImplementation of AWK Language Server based on [tree-sitter](https://github.com/tree-sitter/tree-sitter) and [tree-sitter-awk](https://github.com/Beaglefoot/tree-sitter-awk).\n\n## Features\n\n- [x] Syntax highlighting\n- [x] Diagnostics\n- [x] Autocomplete\n  - [x] Builtins\n  - [x] User defined symbols\n- [x] Hints on hover\n  - [x] Builtins\n  - [x] User defined symbols\n- [x] Go to definition\n- [x] Code outline \u0026 symbol references\n- [x] Document symbols\n- [x] Workspace symbols\n- [x] Rename symbols\n- [x] Code formatting (requires [prettier-plugin-awk](https://github.com/Beaglefoot/prettier-plugin-awk))\n\n## How to use with editors\n\n### VSCode\n\nVSCode extension is developed as part of this project and can be downloaded from marketplace [here](https://marketplace.visualstudio.com/items?itemName=beaglefoot.awk-ide-vscode).\n\n### Emacs\n\n#### [Eglot](https://github.com/joaotavora/eglot)\n\nAdd to your config:\n\n```lisp\n(with-eval-after-load 'eglot\n  (add-to-list 'eglot-server-programs\n               '(awk-mode . (\"awk-language-server\"))))\n```\n\n#### [lsp-mode](https://github.com/emacs-lsp/lsp-mode)\n\n[Support is built-in](https://emacs-lsp.github.io/lsp-mode/page/lsp-awk/), so no action is needed besides turning `lsp-mode` on.\n\n### Vim\n\n- `npm install -g \"awk-language-server@\u003e=0.5.2\"`\n- Choose and install plugin with support for LSP (some examples are below).\n- Configure plugin to use `awk-language-server`.\n\n#### [ALE](https://github.com/dense-analysis/ale)\n\nAdd following to `.vimrc`:\n```vim\ncall ale#linter#Define('awk', {\n\\   'name': 'awk-language-server',\n\\   'lsp': 'stdio',\n\\   'executable': 'awk-language-server',\n\\   'command': '%e',\n\\   'project_root': { _ -\u003e expand('%p:h') }\n\\})\n```\n\nNote that with such configuration `project_root` will be set to directory containing opened awk file.\n\n#### [CoC](https://github.com/neoclide/coc.nvim)\n\nEdit config with `:CocConfig` command and add the following:\n```json\n{\n  \"languageserver\": {\n    \"awk\": {\n      \"command\": \"awk-language-server\",\n      \"args\": [],\n      \"filetypes\": [\"awk\"]\n    }\n  }\n}\n```\n\n#### [vim-lsp](https://github.com/prabirshrestha/vim-lsp)\n\nIt works partially unless [support for multi-root workspaces](https://github.com/prabirshrestha/vim-lsp/issues/1069)\nis implemented by vim-lsp.\n\nAdd to your `.vimrc`:\n```vim\nif executable('awk-language-server')\n    au User lsp_setup call lsp#register_server({\n        \\ 'name': 'awk-language-server',\n        \\ 'cmd': {server_info-\u003e['awk-language-server']},\n        \\ 'allowlist': ['awk'],\n        \\ })\nendif\n```\n\n### Nvim\n\n#### [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig)\n\nA [default config](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#awk_ls)\nfor `awk-language-server` was\n[merged into nvim-lspconfig](https://github.com/neovim/nvim-lspconfig/pull/1665#event-5938617547).\nIt works only if `workspaceFolders` requests are handled and a default\nhandler for these was only just\n[set to be added upstream in Neovim 0.7](https://github.com/neovim/neovim/pull/17149/), so\nthe config itself is gated for use only in Neovim \u003e= v0.7. For users below that version,\nplease use a manual config that handles these requests by adding the following to your\n`init.vim` (or `init.lua`):\n```lua\nlua \u003c\u003c EOF\nlocal configs = require('lspconfig.configs')\nlocal lspconfig = require('lspconfig')\nif not configs.awklsp then\n  configs.awklsp = {\n    default_config = {\n      cmd = { 'awk-language-server' },\n      filetypes = { 'awk' },\n      single_file_support = true,\n      handlers = {\n        ['workspace/workspaceFolders'] = function()\n          return {{\n            uri = 'file://' .. vim.fn.getcwd(),\n            name = 'current_dir',\n          }}\n        end\n      }\n    },\n  }\nend\nlspconfig.awklsp.setup{}\nEOF\n```\n\n## Notes\n\nAWK Language Server supports `AWKPATH`. If you prefer to place all your awk libs in some directory\nand then `@include` it without dir name, then simply pass this env variable to your editor of choice.\n\n```sh\nAWKPATH=./include vim main.vim\n```\n\nor\n\n```sh\nexport AWKPATH=./include\nvim main.vim\n```\n\nCheck [this cool project](https://github.com/djanderson/aho) for inspiration.\n\n## Contributing\n\nThanks for considering it.\n\nPlease check this [guide](./CONTRIBUTING.md).\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBeaglefoot%2Fawk-language-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FBeaglefoot%2Fawk-language-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBeaglefoot%2Fawk-language-server/lists"}