{"adoption": {"forks": 62, "observed_at": "2026-08-28T04:05:02.869052+00:00", "stars": 1553}, "canonical_url": "https://ross.abutalabs.com/products/efm-langserver", "card": {"archived": false, "artifact_type": "cli-tool", "description": "General purpose Language Server", "domain": ["developer-tools", "text-editors"], "enriched": true, "function": ["linter", "formatter", "developer-tools"], "health_score": 95, "homepage": null, "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["mattn/efm-langserver"], "name": "mattn/efm-langserver", "platform": ["windows", "cross-platform", "cli"], "pushed_at": "2026-07-08T04:52:01+00:00", "repo": "mattn/efm-langserver", "stars": 1553, "tags": ["language-server-protocol", "lsp", "editor-integration", "go", "command-line", "linux", "macos"], "topics": ["golang", "go", "langserver", "language-server"], "urls": [], "use_cases": ["add linting diagnostics to any language in vim or neovim via LSP", "use external formatters like yapf or LuaFormatter from my editor", "get linter and formatter support in editors without native LSP plugins", "wire arbitrary CLI tools into LSP diagnostics", "set up efm-langserver with coc.nvim or Eglot", "format files on save using existing command-line tools"], "what_it_is": "efm-langserver is a general-purpose Language Server Protocol server written in Go that acts as a bridge between editors and external linters/formatters. It invokes configured command-line tools, translates their output into LSP diagnostics and formatting responses, and works with any editor that supports LSP.", "when_to_avoid": ["a dedicated language server exists for your language and provides richer features", "you expect built-in linters/formatters — efm bundles none", "you need full IDE semantics like completion or go-to-definition"], "when_to_choose": ["you use an LSP-capable editor and want diagnostics/formatting from existing linters and formatters", "your language has no dedicated language server but has CLI lint/format tools", "you want one configurable proxy for many languages' tools"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/efm-langserver", "repo": "mattn/efm-langserver", "role": "main", "score": 85}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:02.869052+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:30:09.873599+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fd31d7444a66fa0372729d01a33323b89f034429f2d10e81ead4896de6c1873e", "fetched_at": "2026-08-28T04:05:02.869052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mattn/efm-langserver"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:02.869052+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:30:09.873599+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fd31d7444a66fa0372729d01a33323b89f034429f2d10e81ead4896de6c1873e", "fetched_at": "2026-08-28T04:05:02.869052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mattn/efm-langserver"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:30:09.873599+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fd31d7444a66fa0372729d01a33323b89f034429f2d10e81ead4896de6c1873e", "fetched_at": "2026-08-28T04:05:02.869052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mattn/efm-langserver"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:02.869052+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:02.869052+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:02.869052+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:30:09.873599+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fd31d7444a66fa0372729d01a33323b89f034429f2d10e81ead4896de6c1873e", "fetched_at": "2026-08-28T04:05:02.869052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mattn/efm-langserver"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:02.869052+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:02.869052+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:30:09.873599+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fd31d7444a66fa0372729d01a33323b89f034429f2d10e81ead4896de6c1873e", "fetched_at": "2026-08-28T04:05:02.869052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mattn/efm-langserver"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:02.869052+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:02.869052+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:02.869052+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:30:09.873599+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fd31d7444a66fa0372729d01a33323b89f034429f2d10e81ead4896de6c1873e", "fetched_at": "2026-08-28T04:05:02.869052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mattn/efm-langserver"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:02.869052+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:02.869052+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:30:09.873599+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fd31d7444a66fa0372729d01a33323b89f034429f2d10e81ead4896de6c1873e", "fetched_at": "2026-08-28T04:05:02.869052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mattn/efm-langserver"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:30:09.873599+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fd31d7444a66fa0372729d01a33323b89f034429f2d10e81ead4896de6c1873e", "fetched_at": "2026-08-28T04:05:02.869052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mattn/efm-langserver"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:30:09.873599+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fd31d7444a66fa0372729d01a33323b89f034429f2d10e81ead4896de6c1873e", "fetched_at": "2026-08-28T04:05:02.869052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mattn/efm-langserver"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:30:09.873599+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fd31d7444a66fa0372729d01a33323b89f034429f2d10e81ead4896de6c1873e", "fetched_at": "2026-08-28T04:05:02.869052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mattn/efm-langserver"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 91, "longevity": 100, "rhythm": 68}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2766, "days_push": 56, "days_rel": 56, "gap_med": 122, "n_releases_24m": 4}, "score": 85, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}