Skip to content

Completion of imported module name can produce invalid syntax if block already present #58

@davidmichaelkarr

Description

@davidmichaelkarr

Start with the following block of non-red code in a module named "bar":

    import baz {
        prefix "baz";
    }

Where "baz" is the name of an existing module.

Now, put the cursor just past the "z" of "import baz". Press backspace to delete the "z". This properly produces a semantic error, as the referenced module name doesn't exist.

Now, press Ctrl-space to get a list of completion possibilities. This will product a list of two items, being "bar" and "baz". Now select "baz". This produces the following:

    import baz { prefix baz; revision-date 2014-03-21; } {
        prefix "baz";
    }

This obviously reports a syntax error.

This happens whether the block is already in "one-line mode" or not. It inserts the block whether one exists already or not.

Despite the fact that this result is obviously wrong, I'm not certain what it should actually do. It might be reasonable to say that if it finds an existing block, it should immediately delete the block before reinserting the new one.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions