{"id":13872461,"url":"https://github.com/rcjsuen/dockerfile-language-service","last_synced_at":"2025-12-25T21:57:26.887Z","repository":{"id":29478020,"uuid":"121809706","full_name":"rcjsuen/dockerfile-language-service","owner":"rcjsuen","description":"Dockerfile language service for providing an API to create feature-rich Dockerfile editors in JavaScript.","archived":false,"fork":false,"pushed_at":"2024-08-04T18:31:40.000Z","size":13506,"stargazers_count":16,"open_issues_count":18,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-11T19:13:32.564Z","etag":null,"topics":["api","code-completion","dockerfile","dockerfiles","editor","formatter","language-server-protocol","lint","validation"],"latest_commit_sha":null,"homepage":null,"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/rcjsuen.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"License.txt","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},"funding":{"github":"rcjsuen"}},"created_at":"2018-02-16T22:55:37.000Z","updated_at":"2024-08-04T18:31:44.000Z","dependencies_parsed_at":"2024-01-16T09:55:37.949Z","dependency_job_id":"d37f0bc1-ffd0-46bb-8e06-e4d8febf7800","html_url":"https://github.com/rcjsuen/dockerfile-language-service","commit_stats":{"total_commits":352,"total_committers":3,"mean_commits":"117.33333333333333","dds":0.005681818181818232,"last_synced_commit":"5be3a939034591e860bffde1e3ca709e7e4b799d"},"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcjsuen%2Fdockerfile-language-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcjsuen%2Fdockerfile-language-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcjsuen%2Fdockerfile-language-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcjsuen%2Fdockerfile-language-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rcjsuen","download_url":"https://codeload.github.com/rcjsuen/dockerfile-language-service/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226095749,"owners_count":17572979,"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":["api","code-completion","dockerfile","dockerfiles","editor","formatter","language-server-protocol","lint","validation"],"created_at":"2024-08-05T23:00:43.647Z","updated_at":"2025-12-25T21:57:26.840Z","avatar_url":"https://github.com/rcjsuen.png","language":"TypeScript","funding_links":["https://github.com/sponsors/rcjsuen"],"categories":["TypeScript"],"sub_categories":[],"readme":"# Dockerfile Language Service\n\n![Node.js Builds](https://github.com/rcjsuen/dockerfile-language-service/workflows/Node.js%20Builds/badge.svg?branch=master) [![Coverage Status](https://coveralls.io/repos/github/rcjsuen/dockerfile-language-service/badge.svg?branch=master)](https://coveralls.io/github/rcjsuen/dockerfile-language-service?branch=master) [![Build Dependencies](https://david-dm.org/rcjsuen/dockerfile-language-service.svg)](https://david-dm.org/rcjsuen/dockerfile-language-service) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nThis is a language service for Dockerfiles written in TypeScript.\nIf you are looking for an actual Dockerfile language server that can be used with editors that implement the [language server protocol](http://microsoft.github.com/language-server-protocol), please visit the [rcjsuen/dockerfile-language-server-nodejs repository](https://github.com/rcjsuen/dockerfile-language-server-nodejs).\n\nThe purpose of this project is to provide an API for creating a feature-rich Dockerfile editor.\nWhile this language service implements requests from the language server protocol, they are exposed as regular JavaScript functions so you can use them in the browser if you wish.\nFor a demonstration of this language service's capabilities with Microsoft's [Monaco Editor](https://microsoft.github.io/monaco-editor/), please click [here](https://rcjsuen.github.io/dockerfile-language-service/).\n\nTo [install](#installation-instructions) this language service as a dependency into your project, you will need to have [Node.js](https://nodejs.org/en/download/) installed.\n\n**Supported features:**\n- code actions\n- code completion\n- definition\n- diagnostics\n- document highlight\n- document links\n- document symbols\n- folding\n- formatting\n- hovers\n- rename\n- semantic tokens\n- signature help\n\n## Development Instructions\n\nIf you wish to build and compile this language server, you must first install [Node.js](https://nodejs.org/en/download/) if you have not already done so.\nAfter you have installed Node.js and cloned the repository with Git, you may now proceed to build and compile the language server with the following commands:\n\n```\nnpm install\nnpm run build\nnpm test\n```\n\nIf you are planning to change the code, use `npm run watch` to get the TypeScript files transpiled on-the-fly as they are modified.\n\n## Installation Instructions\n\nTo add this language service into your project, you must add `dockerfile-language-service` as a dependency in your package.json file.\n\n## Browser Example\n\nThe `/example/` folder includes an example for using this language service in a browser as a static HTML page with JavaScript.\nTo build the example, please run the following commands from the root of the project:\n\n```\nnpm install\ncd example\nnpm install\nnpm run build\n```\n\nAs the example naturally relies on the language service, it is necessary to invoke `npm install` on the root folder first before invoking `npm install` in the `/example/` folder.\nOnce `npm run build` has completed, you can open the `/example/lib/index.html` in a browser to test things out!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcjsuen%2Fdockerfile-language-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frcjsuen%2Fdockerfile-language-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcjsuen%2Fdockerfile-language-service/lists"}