@@ -54,31 +54,34 @@ private ILspHandlerDescriptor FindDescriptor(string method, JToken @params)
54
54
return null ;
55
55
}
56
56
57
- if ( typeof ( ITextDocumentIdentifierParams ) . GetTypeInfo ( ) . IsAssignableFrom ( descriptor . Params ) )
57
+ if ( @params != null && descriptor . Params != null )
58
58
{
59
- var textDocumentIdentifierParams = @params . ToObject ( descriptor . Params ) as ITextDocumentIdentifierParams ;
60
- var attributes = GetTextDocumentAttributes ( textDocumentIdentifierParams . TextDocument . Uri ) ;
59
+ var paramsValue = @params . ToObject ( descriptor . Params ) ;
60
+ if ( paramsValue is ITextDocumentIdentifierParams textDocumentIdentifierParams )
61
+ {
62
+ var attributes = GetTextDocumentAttributes ( textDocumentIdentifierParams . TextDocument . Uri ) ;
61
63
62
- _logger . LogTrace ( "Found attributes {Count}, {Attributes}" , attributes . Count , attributes . Select ( x => $ "{ x . LanguageId } :{ x . Scheme } :{ x . Uri } ") ) ;
64
+ _logger . LogTrace ( "Found attributes {Count}, {Attributes}" , attributes . Count , attributes . Select ( x => $ "{ x . LanguageId } :{ x . Scheme } :{ x . Uri } ") ) ;
63
65
64
- return GetHandler ( method , attributes ) ;
65
- }
66
- else if ( @params ? . ToObject ( descriptor . Params ) is DidOpenTextDocumentParams openTextDocumentParams )
67
- {
68
- var attributes = new TextDocumentAttributes ( openTextDocumentParams . TextDocument . Uri , openTextDocumentParams . TextDocument . LanguageId ) ;
66
+ return GetHandler ( method , attributes ) ;
67
+ }
68
+ else if ( paramsValue is DidOpenTextDocumentParams openTextDocumentParams )
69
+ {
70
+ var attributes = new TextDocumentAttributes ( openTextDocumentParams . TextDocument . Uri , openTextDocumentParams . TextDocument . LanguageId ) ;
69
71
70
- _logger . LogTrace ( "Created attribute {Attribute}" , $ "{ attributes . LanguageId } :{ attributes . Scheme } :{ attributes . Uri } ") ;
72
+ _logger . LogTrace ( "Created attribute {Attribute}" , $ "{ attributes . LanguageId } :{ attributes . Scheme } :{ attributes . Uri } ") ;
71
73
72
- return GetHandler ( method , attributes ) ;
73
- }
74
- else if ( @params ? . ToObject ( descriptor . Params ) is DidChangeTextDocumentParams didChangeDocumentParams )
75
- {
76
- // TODO: Do something with document version here?
77
- var attributes = GetTextDocumentAttributes ( didChangeDocumentParams . TextDocument . Uri ) ;
74
+ return GetHandler ( method , attributes ) ;
75
+ }
76
+ else if ( paramsValue is DidChangeTextDocumentParams didChangeDocumentParams )
77
+ {
78
+ // TODO: Do something with document version here?
79
+ var attributes = GetTextDocumentAttributes ( didChangeDocumentParams . TextDocument . Uri ) ;
78
80
79
- _logger . LogTrace ( "Found attributes {Count}, {Attributes}" , attributes . Count , attributes . Select ( x => $ "{ x . LanguageId } :{ x . Scheme } :{ x . Uri } ") ) ;
81
+ _logger . LogTrace ( "Found attributes {Count}, {Attributes}" , attributes . Count , attributes . Select ( x => $ "{ x . LanguageId } :{ x . Scheme } :{ x . Uri } ") ) ;
80
82
81
- return GetHandler ( method , attributes ) ;
83
+ return GetHandler ( method , attributes ) ;
84
+ }
82
85
}
83
86
84
87
// TODO: How to split these
0 commit comments