scztt / LanguageServer.quark

16 stars 10 forks source link

"'ownerClass' not understood" for dot completion in braces #22

Open jamshark70 opened 9 months ago

jamshark70 commented 9 months ago

If I type 1000 and then dot, the language server provides completions.

If I first type f = {, VSC auto-closes the brace, so I'm looking at f = {} with the cursor in between braces.

Now I want the 1000.do loop inside the function. So I hit space and type 1000. and... as soon as I hit the dot, the language server barfs (with the text being f = { 1000.} at that point).

    Object:doesNotUnderstand    0x55a801a76340
        arg this = nil
        arg selector = ownerClass
        arg args = nil
    Meta_LSPDatabase:makeMethodCompletion   0x55a8039496c0
        arg this = LSPDatabase
        arg method = nil
        arg sortByClassHierarchy = false
        var sortText = nil
    a FunctionDef   0x55a8050f4080
        sourceCode = "<an open Function>"
        arg index = 27354
        var method = nil
    a FunctionDef   0x55a803dcce00
        sourceCode = "<an open Function>"
        arg elem = 27354
        arg i = 0
    Integer:for 0x55a803c89fc0
        arg this = 27354
        arg endval = 27352
        arg function = a Function
        var i = 27354
        var j = 0
        var stepval = -1
    Range:do    0x55a803f72c80
        arg this = Range(27354, -1)
        arg function = a Function
    Collection:collectAs    0x55a803dcca40
        arg this = Range(27354, -1)
        arg function = a Function
        arg class = Array
        var res = []
    a FunctionDef   0x55a8050f3a00
        sourceCode = "{
                |prefixString, trigger, completion, provideCompletionsFunc|
                var methodIndexRange, methods, results, isIncomplete;

                // @TODO should just return methods themselves, not indexes?
                methodIndexRange = LSPDatabase.matchMethods(completion);

                Log('LanguageServer.quark').info(\"Found % completions, returning %\", methodIndexRange.size, min(100, methodIndexRange.size));

   ...etc..."
        arg prefixString = 1000
        arg trigger = .
        arg completion = }
        arg provideCompletionsFunc = a Function
        var methodIndexRange = Range(27354, -1)
        var methods = nil
        var results = []
        var isIncomplete = false
    LSPCompletionHandler:handle 0x55a804ad4080
        arg this = a LSPCompletionHandler
        arg prefix = 1000
        arg trigger = .
        arg completion = }
        var deferredResult = Deferred(-860931744)

The issue may be related to arg completion = }.

I can probably look at this at some point, but not today. Just noting the finding.