1
1
'use strict' ;
2
2
3
- import { CompletionItemProvider , TextDocument , Position , CancellationToken , CompletionContext , CompletionItem , CompletionItemKind , SnippetString , MarkdownString } from "vscode" ;
3
+ import { CompletionItemProvider , TextDocument , Position , CancellationToken , CompletionContext , CompletionItem , CompletionItemKind , SnippetString , MarkdownString , languages , Disposable } from "vscode" ;
4
4
import * as fse from 'fs-extra' ;
5
5
import * as path from 'path' ;
6
- import { apiManager } from "./apiManager" ;
7
- import { ClientStatus } from "./extension.api" ;
8
6
9
- export class SnippetCompletionProvider implements CompletionItemProvider {
7
+ class SnippetCompletionProvider implements Disposable {
8
+
9
+ private providerImpl : Disposable ;
10
+
11
+ public initialize ( ) : SnippetCompletionProvider {
12
+ this . providerImpl = languages . registerCompletionItemProvider ( { scheme : 'file' , language : 'java' } , new SnippetCompletionProviderImpl ( ) ) ;
13
+ return this ;
14
+ }
15
+
16
+ public dispose ( ) : void {
17
+ this . providerImpl . dispose ( ) ;
18
+ }
19
+ }
20
+
21
+ class SnippetCompletionProviderImpl implements CompletionItemProvider {
10
22
11
23
private snippets : { } ;
12
24
@@ -15,9 +27,6 @@ export class SnippetCompletionProvider implements CompletionItemProvider {
15
27
}
16
28
17
29
public async provideCompletionItems ( _document : TextDocument , _position : Position , _token : CancellationToken , _context : CompletionContext ) : Promise < CompletionItem [ ] > {
18
- if ( apiManager . getApiInstance ( ) . status === ClientStatus . Started ) {
19
- return [ ] ;
20
- }
21
30
22
31
const snippetItems : CompletionItem [ ] = [ ] ;
23
32
for ( const label of Object . keys ( this . snippets ) ) {
@@ -48,3 +57,5 @@ export function beautifyDocument(raw: string): MarkdownString {
48
57
const escapedString = raw . replace ( / \$ \{ \d : ? ( .* ?) \} / gm, '$1' ) . replace ( / \$ \d / gm, '' ) ;
49
58
return new MarkdownString ( ) . appendCodeblock ( escapedString , "java" ) ;
50
59
}
60
+
61
+ export const snippetCompletionProvider : SnippetCompletionProvider = new SnippetCompletionProvider ( ) ;
0 commit comments