@@ -192,7 +192,7 @@ impl Client {
192 text_document: Some(lsp::TextDocumentClientCapabilities {
192 text_document: Some(lsp::TextDocumentClientCapabilities {
193 completion: Some(lsp::CompletionClientCapabilities {
193 completion: Some(lsp::CompletionClientCapabilities {
194 completion_item: Some(lsp::CompletionItemCapability {
194 completion_item: Some(lsp::CompletionItemCapability {
195− snippet_support: Some(false), // TODO
195+ snippet_support: Some(false),
196 ..Default::default()
196 ..Default::default()
198 completion_item_kind: Some(lsp::CompletionItemKindCapability {
198 completion_item_kind: Some(lsp::CompletionItemKindCapability {
@@ -284,7 +284,6 @@ impl Client {
284 mut character,
284 mut character,
287− // TODO: there should be a better way here
288 for ch in text.chars() {
287 for ch in text.chars() {
289 if ch == '\n' {
288 if ch == '\n' {
290 line += 1;
289 line += 1;
@@ -299,8 +298,6 @@ impl Client {
299 let old_text = old_text.slice(..);
298 let old_text = old_text.slice(..);
300 let new_text = new_text.slice(..);
299 let new_text = new_text.slice(..);
302− // TODO: verify this function, specifically line num counting
304 while let Some(change) = iter.next() {
301 while let Some(change) = iter.next() {
305 let len = match change {
302 let len = match change {
306 Delete(i) | Retain(i) => *i,
303 Delete(i) | Retain(i) => *i,
@@ -355,7 +352,6 @@ impl Client {
358− // TODO: trigger any time history.commit_revision happens
359 pub async fn text_document_did_change(
355 pub async fn text_document_did_change(
361 text_document: lsp::VersionedTextDocumentIdentifier,
357 text_document: lsp::VersionedTextDocumentIdentifier,
@@ -365,7 +361,7 @@ impl Client {
365 ) -> Result<()> {
361 ) -> Result<()> {
366 // figure out what kind of sync the server supports
362 // figure out what kind of sync the server supports
368− let capabilities = self.capabilities.as_ref().unwrap(); // TODO: needs post init
364+ let capabilities = self.capabilities.as_ref().unwrap();
370 let sync_capabilities = match capabilities.text_document_sync {
366 let sync_capabilities = match capabilities.text_document_sync {
371 Some(lsp::TextDocumentSyncCapability::Kind(kind)) => kind,
367 Some(lsp::TextDocumentSyncCapability::Kind(kind)) => kind,
@@ -384,7 +380,7 @@ impl Client {
384 range: None, //Some(Range)
380 range: None, //Some(Range)
385 range_length: None, // u64 apparently deprecated
381 range_length: None, // u64 apparently deprecated
386 text: "".to_string(),
382 text: "".to_string(),
387− }] // TODO: probably need old_state here too?
383+ }]
389 lsp::TextDocumentSyncKind::Incremental => {
385 lsp::TextDocumentSyncKind::Incremental => {
390 Self::changeset_to_changes(old_text, new_text, changes)
386 Self::changeset_to_changes(old_text, new_text, changes)
@@ -416,7 +412,7 @@ impl Client {
416 text_document: lsp::TextDocumentIdentifier,
412 text_document: lsp::TextDocumentIdentifier,
417 text: &Rope,
413 text: &Rope,
418 ) -> Result<()> {
414 ) -> Result<()> {
419− let capabilities = self.capabilities.as_ref().unwrap(); // TODO: needs post init
415+ let capabilities = self.capabilities.as_ref().unwrap();
421 let include_text = match &capabilities.text_document_sync {
417 let include_text = match &capabilities.text_document_sync {
422 Some(lsp::TextDocumentSyncCapability::Options(lsp::TextDocumentSyncOptions {
418 Some(lsp::TextDocumentSyncCapability::Options(lsp::TextDocumentSyncOptions {
@@ -446,8 +442,6 @@ impl Client {
446 text_document: lsp::TextDocumentIdentifier,
442 text_document: lsp::TextDocumentIdentifier,
447 position: lsp::Position,
443 position: lsp::Position,
448 ) -> Result<Vec<lsp::CompletionItem>> {
444 ) -> Result<Vec<lsp::CompletionItem>> {
449− // TODO: figure out what should happen when you complete with multiple cursors
451 let params = lsp::CompletionParams {
445 let params = lsp::CompletionParams {
452 text_document_position: lsp::TextDocumentPositionParams {
446 text_document_position: lsp::TextDocumentPositionParams {
453 text_document,
447 text_document,
@@ -489,7 +483,6 @@ impl Client {
489 text_document,
483 text_document,
490 position,
484 position,
492− // TODO: support these tokens
493 work_done_progress_params: lsp::WorkDoneProgressParams {
486 work_done_progress_params: lsp::WorkDoneProgressParams {
494 work_done_token: None,
487 work_done_token: None,
@@ -514,7 +507,6 @@ impl Client {
514 text_document,
507 text_document,
515 position,
508 position,
517− // TODO: support these tokens
518 work_done_progress_params: lsp::WorkDoneProgressParams {
510 work_done_progress_params: lsp::WorkDoneProgressParams {
519 work_done_token: None,
511 work_done_token: None,
@@ -533,7 +525,7 @@ impl Client {
533 text_document: lsp::TextDocumentIdentifier,
525 text_document: lsp::TextDocumentIdentifier,
534 options: lsp::FormattingOptions,
526 options: lsp::FormattingOptions,
535 ) -> anyhow::Result<Vec<lsp::TextEdit>> {
527 ) -> anyhow::Result<Vec<lsp::TextEdit>> {
536− let capabilities = self.capabilities.as_ref().unwrap(); // TODO: needs post init
528+ let capabilities = self.capabilities.as_ref().unwrap();
538 // check if we're able to format
530 // check if we're able to format
539 let _capabilities = match capabilities.document_formatting_provider {
531 let _capabilities = match capabilities.document_formatting_provider {
@@ -547,7 +539,6 @@ impl Client {
547 let params = lsp::DocumentFormattingParams {
539 let params = lsp::DocumentFormattingParams {
548 text_document,
540 text_document,
550− // TODO: support these tokens
551 work_done_progress_params: lsp::WorkDoneProgressParams {
542 work_done_progress_params: lsp::WorkDoneProgressParams {
552 work_done_token: None,
543 work_done_token: None,
@@ -564,7 +555,7 @@ impl Client {
564 range: lsp::Range,
555 range: lsp::Range,
565 options: lsp::FormattingOptions,
556 options: lsp::FormattingOptions,
566 ) -> anyhow::Result<Vec<lsp::TextEdit>> {
557 ) -> anyhow::Result<Vec<lsp::TextEdit>> {
567− let capabilities = self.capabilities.as_ref().unwrap(); // TODO: needs post init
558+ let capabilities = self.capabilities.as_ref().unwrap();
569 // check if we're able to format
560 // check if we're able to format
570 let _capabilities = match capabilities.document_range_formatting_provider {
561 let _capabilities = match capabilities.document_range_formatting_provider {
@@ -579,7 +570,6 @@ impl Client {
579 text_document,
570 text_document,
582− // TODO: support these tokens
583 work_done_progress_params: lsp::WorkDoneProgressParams {
573 work_done_progress_params: lsp::WorkDoneProgressParams {
584 work_done_token: None,
574 work_done_token: None,