rcjsuen / dockerfile-language-service

Dockerfile language service for providing an API to create feature-rich Dockerfile editors in JavaScript.
MIT License
16 stars 2 forks source link

Infinite loop when computing completion items in ADD and COPY if the build stage shares the name with the image #99

Closed rcjsuen closed 2 years ago

rcjsuen commented 2 years ago
const lib = require("dockerfile-language-service")
const service = lib.DockerfileLanguageServiceFactory.createLanguageService();
service.computeCompletionItems("FROM a as a\nCOPY . . ", { line: 1, character: 9 });

This code will enter an infinite loop.

rcjsuen commented 2 years ago

Same thing happens for an ADD.

const lib = require("dockerfile-language-service")
const service = lib.DockerfileLanguageServiceFactory.createLanguageService();
service.computeCompletionItems("FROM a as a\nADD . . ", { line: 1, character: 8 });
rcjsuen commented 2 years ago

This is likely caused by https://github.com/rcjsuen/dockerfile-ast/issues/100.