vendor tsgo
This commit is contained in:
@@ -0,0 +1,141 @@
|
||||
package fourslash_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/microsoft/typescript-go/internal/fourslash"
|
||||
"github.com/microsoft/typescript-go/internal/testutil"
|
||||
)
|
||||
|
||||
func TestGetOutliningSpans(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
defer testutil.RecoverAndFail(t, "Panic on fourslash test")
|
||||
const content = `// interface
|
||||
interface IFoo[| {
|
||||
getDist(): number;
|
||||
}|]
|
||||
|
||||
// class members
|
||||
class Foo[| {
|
||||
constructor()[| {
|
||||
}|]
|
||||
|
||||
public foo(): number[| {
|
||||
return 0;
|
||||
}|]
|
||||
|
||||
public get X()[| {
|
||||
return 1;
|
||||
}|]
|
||||
|
||||
public set X(v: number)[| {
|
||||
}|]
|
||||
|
||||
public member = function f()[| {
|
||||
|
||||
}|]
|
||||
}|]
|
||||
// class expressions
|
||||
[|(new class[| {
|
||||
bla()[| {
|
||||
|
||||
}|]
|
||||
}|])|]
|
||||
switch(1)[| {
|
||||
case 1:[| break;|]
|
||||
}|]
|
||||
|
||||
var array =[| [
|
||||
1,
|
||||
2
|
||||
]|]
|
||||
|
||||
// modules
|
||||
module m1[| {
|
||||
module m2[| { }|]
|
||||
module m3[| {
|
||||
function foo()[| {
|
||||
|
||||
}|]
|
||||
|
||||
interface IFoo2[| {
|
||||
|
||||
}|]
|
||||
|
||||
class foo2 implements IFoo2[| {
|
||||
|
||||
}|]
|
||||
}|]
|
||||
}|]
|
||||
|
||||
// function declaration
|
||||
function foo(): number[| {
|
||||
return 0;
|
||||
}|]
|
||||
|
||||
// function expressions
|
||||
[|(function f()[| {
|
||||
|
||||
}|])|]
|
||||
|
||||
// trivia handling
|
||||
class ClassFooWithTrivia[| /* some comments */
|
||||
/* more trivia */ {
|
||||
|
||||
|
||||
[|/*some trailing trivia */|]
|
||||
}|] /* even more */
|
||||
|
||||
// object literals
|
||||
var x =[|{
|
||||
a:1,
|
||||
b:2,
|
||||
get foo()[| {
|
||||
return 1;
|
||||
}|]
|
||||
}|]
|
||||
//outline with deep nesting
|
||||
var nest =[| [[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[[|[
|
||||
[|[
|
||||
[
|
||||
[
|
||||
[
|
||||
[
|
||||
1,2,3
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
]|]
|
||||
]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|]]|];
|
||||
|
||||
//outline after a deeply nested node
|
||||
class AfterNestedNodes[| {
|
||||
}|]
|
||||
// function arguments
|
||||
function f(x: number[], y: number[])[| {
|
||||
return 3;
|
||||
}|]
|
||||
f[|(
|
||||
// single line array literal span won't render in VS
|
||||
[|[0]|],
|
||||
[|[
|
||||
1,
|
||||
2
|
||||
]|]
|
||||
)|];
|
||||
|
||||
class C<T>[| {
|
||||
foo: T;
|
||||
}|]
|
||||
|
||||
class D<T> extends C<T>[| {
|
||||
constructor(x)[| {
|
||||
super<T>(x);
|
||||
}|]
|
||||
}|]`
|
||||
f, done := fourslash.NewFourslash(t, nil /*capabilities*/, content)
|
||||
defer done()
|
||||
f.VerifyOutliningSpans(t)
|
||||
}
|
||||
Reference in New Issue
Block a user