|
2 | 2 | * Copyright (C) Microsoft Corporation. All rights reserved.
|
3 | 3 | *--------------------------------------------------------*/
|
4 | 4 |
|
5 |
| -import vscode = require("vscode"); |
6 | 5 | import { IFeature } from "../feature";
|
7 |
| -import { TextDocumentChangeEvent, workspace, Disposable, Position } from "vscode"; |
| 6 | +import { TextDocumentChangeEvent, workspace, Disposable, Position, window, Range, EndOfLine } from "vscode"; |
8 | 7 | import { LanguageClient, RequestType } from "vscode-languageclient";
|
9 | 8 |
|
10 | 9 | export namespace CommentHelpRequest {
|
@@ -53,6 +52,7 @@ export class HelpCompletionFeature implements IFeature {
|
53 | 52 | }
|
54 | 53 |
|
55 | 54 | onEvent(changeEvent: TextDocumentChangeEvent): void {
|
| 55 | + // todo split this method into logical components |
56 | 56 | let text = changeEvent.contentChanges[0].text;
|
57 | 57 | switch (this.searchState) {
|
58 | 58 | case SearchState.Searching:
|
@@ -103,16 +103,24 @@ export class HelpCompletionFeature implements IFeature {
|
103 | 103 | return;
|
104 | 104 | }
|
105 | 105 |
|
106 |
| - // todo get the eol character programmatically or let the server return one whole string |
107 | 106 | // todo add indentation level to the help content
|
108 |
| - let editor = vscode.window.activeTextEditor; |
109 |
| - let replaceRange = new vscode.Range(triggerStartPos.translate(0, -1), triggerStartPos.translate(0, 1)); |
| 107 | + let editor = window.activeTextEditor; |
| 108 | + let replaceRange = new Range(triggerStartPos.translate(0, -1), triggerStartPos.translate(0, 1)); |
110 | 109 |
|
111 | 110 | // Trim the last empty line and join the strings.
|
112 |
| - let text = content.slice(0, -1).join("\r\n"); |
| 111 | + let text = content.slice(0, -1).join(this.getEOL(doc.eol)); |
113 | 112 | editor.edit(editBuilder => editBuilder.replace(replaceRange, text));
|
114 | 113 | });
|
115 | 114 | }
|
116 | 115 | }
|
117 | 116 | }
|
| 117 | + |
| 118 | + private getEOL(eol: EndOfLine): string { |
| 119 | + // there are only two type of EndOfLine types. |
| 120 | + if (eol === EndOfLine.CRLF) { |
| 121 | + return "\r\n"; |
| 122 | + } |
| 123 | + |
| 124 | + return "\n"; |
| 125 | + } |
118 | 126 | }
|
0 commit comments