55'use strict' ;
66
77import * as assert from 'assert' ;
8+ import { IDisposable , dispose } from 'vs/base/common/lifecycle' ;
89import URI from 'vs/base/common/uri' ;
10+ import { ICodeEditor } from 'vs/editor/browser/editorBrowser' ;
11+ import { Selection } from 'vs/editor/common/core/selection' ;
912import { TextModel } from 'vs/editor/common/model/textModel' ;
13+ import { CodeActionProviderRegistry , LanguageIdentifier } from 'vs/editor/common/modes' ;
14+ import { CodeActionOracle } from 'vs/editor/contrib/codeAction/codeActionModel' ;
15+ import { CodeActionKind } from 'vs/editor/contrib/codeAction/codeActionTrigger' ;
1016import { createTestCodeEditor } from 'vs/editor/test/browser/testCodeEditor' ;
1117import { MarkerService } from 'vs/platform/markers/common/markerService' ;
12- import { CodeActionOracle } from 'vs/editor/contrib/codeAction/codeActionModel' ;
13- import { CodeActionProviderRegistry , LanguageIdentifier } from 'vs/editor/common/modes' ;
14- import { IDisposable } from 'vs/base/common/lifecycle' ;
15- import { ICodeEditor } from 'vs/editor/browser/editorBrowser' ;
16- import { Selection } from 'vs/editor/common/core/selection' ;
1718
19+ const testProvider = {
20+ provideCodeActions ( ) {
21+ return [ { id : 'test-command' , title : 'test' , arguments : [ ] } ] ;
22+ }
23+ } ;
1824suite ( 'CodeAction' , ( ) => {
1925
2026 const languageIdentifier = new LanguageIdentifier ( 'foo-lang' , 3 ) ;
2127 let uri = URI . parse ( 'untitled:path' ) ;
2228 let model : TextModel ;
2329 let markerService : MarkerService ;
2430 let editor : ICodeEditor ;
25- let reg : IDisposable ;
31+ let disposables : IDisposable [ ] ;
2632
2733 setup ( ( ) => {
28- reg = CodeActionProviderRegistry . register ( languageIdentifier . language , {
29- provideCodeActions ( ) {
30- return [ { id : 'test-command' , title : 'test' , arguments : [ ] } ] ;
31- }
32- } ) ;
34+ disposables = [ ] ;
3335 markerService = new MarkerService ( ) ;
3436 model = TextModel . createFromString ( 'foobar foo bar\nfarboo far boo' , undefined , languageIdentifier , uri ) ;
3537 editor = createTestCodeEditor ( { model : model } ) ;
3638 editor . setPosition ( { lineNumber : 1 , column : 1 } ) ;
3739 } ) ;
3840
3941 teardown ( ( ) => {
40- reg . dispose ( ) ;
42+ dispose ( disposables ) ;
4143 editor . dispose ( ) ;
4244 model . dispose ( ) ;
4345 markerService . dispose ( ) ;
4446 } ) ;
4547
4648 test ( 'Orcale -> marker added' , done => {
49+ const reg = CodeActionProviderRegistry . register ( languageIdentifier . language , testProvider ) ;
50+ disposables . push ( reg ) ;
4751
4852 const oracle = new CodeActionOracle ( editor , markerService , e => {
4953 assert . equal ( e . trigger . type , 'auto' ) ;
@@ -68,6 +72,8 @@ suite('CodeAction', () => {
6872 } ) ;
6973
7074 test ( 'Orcale -> position changed' , ( ) => {
75+ const reg = CodeActionProviderRegistry . register ( languageIdentifier . language , testProvider ) ;
76+ disposables . push ( reg ) ;
7177
7278 markerService . changeOne ( 'fake' , uri , [ {
7379 startLineNumber : 1 , startColumn : 1 , endLineNumber : 1 , endColumn : 6 ,
@@ -96,11 +102,12 @@ suite('CodeAction', () => {
96102 } ) ;
97103
98104 test ( 'Lightbulb is in the wrong place, #29933' , async function ( ) {
99- let reg = CodeActionProviderRegistry . register ( languageIdentifier . language , {
100- provideCodeActions ( doc , _range ) {
105+ const reg = CodeActionProviderRegistry . register ( languageIdentifier . language , {
106+ provideCodeActions ( _doc , _range ) {
101107 return [ ] ;
102108 }
103109 } ) ;
110+ disposables . push ( reg ) ;
104111
105112 editor . getModel ( ) . setValue ( '// @ts-check\n2\ncon\n' ) ;
106113
@@ -146,9 +153,5 @@ suite('CodeAction', () => {
146153
147154 // oracle.trigger('manual');
148155 // });
149-
150-
151- reg . dispose ( ) ;
152156 } ) ;
153-
154157} ) ;
0 commit comments