{"id":28167611,"url":"https://github.com/sskender/jargonlsp","last_synced_at":"2026-04-27T11:31:39.187Z","repository":{"id":284225682,"uuid":"889519639","full_name":"sskender/jargonlsp","owner":"sskender","description":"Understand internal jargon instantly, directly within your editor","archived":false,"fork":false,"pushed_at":"2025-04-07T17:13:28.000Z","size":3794,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-16T16:02:01.075Z","etag":null,"topics":["jargon","lsp","lsp-server","lspconfig","neovim-lsp","nvim-lsp","nvim-lspconfig","rpc","tcp","vim-lsp","vscode-extension"],"latest_commit_sha":null,"homepage":"","language":"Go","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/sskender.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":"2024-11-16T14:37:55.000Z","updated_at":"2025-04-07T17:12:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"999ac938-1100-4932-98c9-cc73613567ed","html_url":"https://github.com/sskender/jargonlsp","commit_stats":null,"previous_names":["sskender/jargonlsp"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/sskender/jargonlsp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sskender%2Fjargonlsp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sskender%2Fjargonlsp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sskender%2Fjargonlsp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sskender%2Fjargonlsp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sskender","download_url":"https://codeload.github.com/sskender/jargonlsp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sskender%2Fjargonlsp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32335295,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["jargon","lsp","lsp-server","lspconfig","neovim-lsp","nvim-lsp","nvim-lspconfig","rpc","tcp","vim-lsp","vscode-extension"],"created_at":"2025-05-15T14:13:05.973Z","updated_at":"2026-04-27T11:31:39.167Z","avatar_url":"https://github.com/sskender.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jargon LSP Server\n\nUnderstand internal jargon instantly, directly within your editor.\n\n## Overview\n\nWorking on a large codebase filled with company-specific terminology, acronyms, or domain-specific jargon? Keeping track of all these can be painful, especially when scattered across multiple documents and teams.\n\n**Jargon LSP Server** is a lightweight, Language Server Protocol ([LSP](https://en.wikipedia.org/wiki/Language_Server_Protocol)) server written in Go. It allows you to query definitions of unknown terms directly in your code editor, powered by a customizable dictionary file. The server is editor-agnostic and filetype-agnostic. It integrates seamlessly with any LSP-capable editor, such as Neovim, VSCode, Sublime, etc.\n\n![Demo](./docs/demo.gif)\n\n*Tested primarily with Neovim, but should work across different editors.*\n\n## Why LSP?\n\nYou might wonder: why implement this as an LSP server instead of a native plugin?\n\n- **Editor-Agnostic**: One implementation, usable across all editors that support LSP.\n\n- **Filetype-Agnostic**: Works with any file type - source code, configs, documentation, etc.\n\n- **Extensible \u0026 Scalable**: Easier to evolve, debug, and add features (e.g., TCP support in the future).\n\n- **Learning Value**: A practical project to dive deep into LSP internals, communication protocols, and editor integrations - Neovim especially.\n\n## Features\n\n- **Customizable Dictionary**: Load any JSON dictionary file with term-definition mappings.\n\n- **Hover Support**: Get definitions by hovering over tokens.\n\n- **Multiple Dictionaries**: Use per-project dictionaries by configuring dictionary paths.\n\n- **Minimal Dependencies**: No overhead - runs anywhere Go runs.\n\n## Installation\n\n### Prerequisites\n\n- Go v1.18+\n\n### Build \u0026 Install\n\n```sh\ngit clone https://github.com/sskender/jargonlsp\ncd jargonlsp\ngo build -o jargonlsp\nsudo mv jargonlsp /usr/local/bin/\n```\n\n### Prepare Dictionary\n\nCreate a JSON dictionary file structured like:\n\n```json\n{\n    \"AMM\": \"A decentralized asset trading pool that enables market participants to buy or sell cryptocurrencies. Uniswap is the most well-known AMM.\",\n    \"APR\": \"Annual percentage rate (APR) represents the yearly rate charged for borrowing money, represented as a percentage.\",\n    \"APY\": \"Annual percentage yield (APY) is similar to APR, but refers to money earned in a savings account or other investment, rather than the interest rate paid on a loan.\",\n    \"dApp\": \"A decentralized Web3 software application that normally runs on a blockchain.\",\n    \"DAO\": \"Distributed Autonomous Organization.\",\n    \"HODL\": \"HODL was initially a spelling error of 'hold' that became a term that was embraced as an inside joke by the early adopters of Bitcoin and Ethereum.\",\n    \"Oracle\": \"A trusted feed of data, such as the current market prices of an asset or assets, that provides confidence to users that the data are timely, accurate, and untampered.\",\n    \"ROI\": \"Return On Investment. The gains or losses on an investment.\",\n    \"TVL\": \"The Total Value Locked into a Smart Contract or set of Smart Contracts that may be deployed or stored at one or more exchanges or markets.\"\n}\n```\n\nYou can maintain one central glossary or project-specific dictionaries, and even optionally automate updates by parsing internal documentation.\n\n### Editor Setup\n\nExample for Neovim:\n\n```lua\nlocal lspconfig = require(\"lspconfig\")\nlocal configs = require(\"lspconfig.configs\")\n\nconfigs.jargonlsp = {\n    default_config = {\n        cmd = { \"jargonlsp\", \"--dictionary=/path/to/glossary.json\" },\n        filetypes = { \"json\", \"python\" },\n        root_dir = vim.fn.getcwd(),\n        capabilities = lspconfig.util.default_config.capabilities,\n    }\n}\n\nlspconfig.jargonlsp.setup({\n    on_attach = function(client, bufnr)\n        print(\"JargonLSP attached successfully\")\n    end\n})\n```\n\nUse the `hover` action to view definitions under your cursor.\nIf you are already using LSP hovers for other servers, you can bind this one to a separate key to avoid conflicts.\n\n## Future Work\n\n- **TCP Support**: Current implementation uses standard input/output (stdio) communication. Future versions will add optional TCP-based communication to support more flexible setups like remote usage.\n\n- **Advanced Matching**: Token normalization, fuzzy matching, and support for multi-word phrases.\n\n## Disclaimer \u0026 Considerations\n\n- The LSP server does not attempt to parse language syntax. It operates purely on token boundaries.\n\n- Dictionary accuracy and updates are user-maintained. Automation scripts for parsing company glossaries are recommended.\n\n- Be mindful of editor-specific LSP quirks when configuring LSP settings.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsskender%2Fjargonlsp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsskender%2Fjargonlsp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsskender%2Fjargonlsp/lists"}