Skip to content

Commit

Permalink
Merge pull request #21 from CodinGame/send-capabilities-one-by-one
Browse files Browse the repository at this point in the history
Send capabilities one by one
  • Loading branch information
JeanDamien authored Oct 10, 2023
2 parents 310e20e + bba2bf2 commit da76ba6
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions src/capabilities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -96,11 +96,15 @@ export function synchronizeLanguageServerCapabilities (
try {
// Synchronizing dynamic server capabilities
const sendRegistrationRequest = (registrations: readonly Registration[]) => {
clientConnection.sendRequest(RegistrationRequest.type, {
registrations: registrations.filter(r => !IGNORED_REGISTRATION_METHOD.has(r.method)).map(adaptRegistration)
}).catch(error => {
logger?.error('Unable to send registration requestion to client', { error })
})
// Send registration one by one even if it's possible to send them all at once
// Because C# LSP sends duplicated capabilities that make the client ignore the next capabilities in the list
for (const registration of registrations.filter(r => !IGNORED_REGISTRATION_METHOD.has(r.method)).map(adaptRegistration)) {
clientConnection.sendRequest(RegistrationRequest.type, {
registrations: [registration]
}).catch(error => {
logger?.error('Unable to send registration requestion to client', { error })
})
}
}
const registrationRequests = watchableServerCapabilities.getRegistrationRequests()
if (registrationRequests.length > 0) {
Expand Down

0 comments on commit da76ba6

Please sign in to comment.