Skip to content

Better code completion for extends #1584

@markwpearce

Description

@markwpearce

I noticed that the code completion for after extends is a little rough.

Also extends is not even it's own Token? weird.

I'd expect these tests to pass:

describe('extends', () => {
        it('should show only other classes for a class', () => {
            program.setFile('source/main.bs', `
                class Klass1
                end class

                class Klass2 extends
                end class
            `);

            program.validate();
            //   class Klass2 extends |
            let completions = program.getCompletions('source/main.bs', util.createPosition(4, 37));
            expectCompletionsIncludes(completions, [{
                label: 'Klass1',
                kind: CompletionItemKind.Class
            }]);
            expect(completions.length).to.eql(1);
        });

        it('should show other interfaces and components for an interface', () => {

            program.setFile('components/myNode.xml',
                trim`<component name="myNode" extends="group">
                </component>
            `);

            program.setFile('source/main.bs', `
                interface IFace1
                end class

                interface IFace2 extends 
                end class
            `);

            program.validate();
            //   interface IFace2 extends |
            let completions = program.getCompletions('source/main.bs', util.createPosition(4, 42));
            expectCompletionsIncludes(completions, [{
                label: 'IFace1',
                kind: CompletionItemKind.Class
            }]);

            expectCompletionsIncludes(completions, [{
                label: 'roSGNodeMyNode',
                kind: CompletionItemKind.Interface
            }]);
        });

    });

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions