scztt / vscode-supercollider

MIT License
52 stars 6 forks source link

".openDocument" does not work #33

Open prko opened 10 months ago

prko commented 10 months ago

I assume this is already known, but I am reporting this in case it is not: In SC-IDE I am able to open other SCD files with ".resolveRelative.openDocument", but in vscode I get the following error:

ERROR: Message 'implementationClass' not understood.
RECEIVER:
class Document (0x148456ec0) {
  instance variables [19]
    name : Symbol 'Document'
    nextclass : instance of Meta_DocumentFile (0x160d0dd00, size=19, set=5)
    superclass : Symbol 'Object'
    subclasses : instance of Array (0x14838c480, size=1, set=2)
    methods : instance of Array (0x148457040, size=27, set=5)
    instVarNames : instance of SymbolArray (0x1484572c0, size=9, set=3)
    classVarNames : instance of SymbolArray (0x148457540, size=9, set=3)
    iprototype : instance of Array (0x1484573c0, size=9, set=4)
    cprototype : instance of Array (0x148457640, size=9, set=4)
    constNames : nil
    constValues : nil
    instanceFormat : Integer 0
    instanceFlags : Integer 0
    classIndex : Integer 1322
    classFlags : Integer 0
    maxSubclassIndex : Integer 1323
    filenameSymbol : Symbol '/Users/prko/Library/Application Support/SuperCollider/downloaded-quarks/LanguageServer/scide_vscode/LSPDocument.sc'
    charPos : Integer 1517
    classVarIndex : Integer 673
}
ARGS:
PATH: /Users/prko/Dropbox/prko/__myDocs/Writings/Making Sound using Open Sources/mixed/dev - Bleeding edge/SuperCollider.app/Contents/Resources/HelpSource/Tutorials/aKoreanGuide/_scripts %26 PDFs/2023-2/Introduction to SuperCollider/_outline.scd

PROTECTED CALL STACK:
    Meta_MethodError:new    0x13118e180
        arg this = DoesNotUnderstandError
        arg what = nil
        arg receiver = Document
    Meta_DoesNotUnderstandError:new 0x1311904c0
        arg this = DoesNotUnderstandError
        arg receiver = Document
        arg selector = implementationClass
        arg args = []
    Object:doesNotUnderstand    0x15804c780
        arg this = Document
        arg selector = implementationClass
        arg args = nil
    String:openDocument 0x15839e240
        arg this = /Users/prko/Dropbox/prko/__myDocs/Writings/Making Sound using Open Sources/mixed/dev - Bleeding edge/SuperCollider.app/Contents/Resources/HelpSource/Tutorials/aKoreanGuide/_scripts %26 PDFs/2023-2/Introduction to SuperCollider/3.2.2. fades in SC.scd
        arg selectionStart = 0
        arg selectionLength = 0
        var ideClass = nil
    a FunctionDef   0x17051c180
        sourceCode = "<an open Function>"
    Function:prTry  0x160411340
        arg this = a Function
        var result = nil
        var thread = a Routine
        var next = a Function
        var wasInProtectedFunc = true
    Function:try    0x160410e00
        arg this = a Function
        arg handler = a Function
        var result = nil
    EvaluateProvider:onReceived 0x17051bb00
        arg this = an EvaluateProvider
        arg method = textDocument/evaluateSelection
        arg params = Dictionary[(sourceCode -> "3.2.2. fades in SC.scd".resolveRelative.openDocument), (textDocument -> Dictionary[(uri -> file:///Users/prko/Dropbox/prko/__myDocs/Writings/Making%20Sound%20using%20Open%20Sources/mixed/dev%20-%20Bleeding%20edge/SuperCollider.app/Contents/Resources/HelpSource/Tutorials/aKoreanGuide/_scripts%20%26%20PDFs/2023-2/Introduction%20to%20SuperCollider/_outline.scd)])]
        var source = "3.2.2. fades in SC.scd".resolveRelative.openDocument
        var document = a LSPDocument
        var function = a Function
        var result = ('error': ERROR: Message 'implementationClass' not understood.)
        var resultStream = a CollStream
    a FunctionDef   0x128a07380
        sourceCode = "<an open Function>"
    Function:prTry  0x160411340
        arg this = a Function
        var result = nil
        var thread = a Routine
        var next = nil
        var wasInProtectedFunc = true

CALL STACK:
    DoesNotUnderstandError:reportError
        arg this = <instance of DoesNotUnderstandError>
    EvaluateProvider:onReceived
        arg this = <instance of EvaluateProvider>
        arg method = 'textDocument/evaluateSelection'
        arg params = <instance of Dictionary>
        var source = ""3.2.2. fades in SC.scd".res..."
        var document = <instance of LSPDocument>
        var function = <instance of Function>
        var result = <instance of Event>
        var resultStream = <instance of CollStream>
    < FunctionDef in Method Deferred:using >  (no arguments or variables)
    Function:prTry
        arg this = <instance of Function>
        var result = nil
        var thread = <instance of Routine>
        var next = nil
        var wasInProtectedFunc = true
    Function:try
        arg this = <instance of Function>
        arg handler = <instance of Function>
        var result = nil
    < FunctionDef in Method Deferred:using >
        var funcResult = 'noValue'
    Routine:prStart
        arg this = <instance of Routine>
        arg inval = 536.640291334
^^ ERROR: Message 'implementationClass' not understood.
RECEIVER: Document
scztt commented 4 months ago

This may be a limitation of the language server protocol. In general, LSP clients don't REALLY have a strong notion of files being "open" or "not open", However, I can look into possible solutions for this, because i see that it could be useful....