|
@@ -7,13 +7,13 @@ import utest.Assert.*;
|
|
|
|
|
|
// TODO: somebody has to clean this up
|
|
|
class ReplaceRanges extends TestCase {
|
|
|
- function complete<S, T>(content:String, markerIndex:Int, cb:(response:CompletionResponse<S, T>, markers:Map<Int, Int>) -> Void) {
|
|
|
+ @:coroutine
|
|
|
+ function complete<S, T>(content:String, markerIndex:Int) {
|
|
|
var transform = Marker.extractMarkers(content);
|
|
|
vfs.putContent("Main.hx", transform.source);
|
|
|
- runHaxeJson([], DisplayMethods.Completion, {file: new FsPath("Main.hx"), offset: transform.markers[markerIndex], wasAutoTriggered: true}, function() {
|
|
|
- var result = parseCompletion();
|
|
|
- cb(result.result, transform.markers);
|
|
|
- });
|
|
|
+ runHaxeJson([], DisplayMethods.Completion, {file: new FsPath("Main.hx"), offset: transform.markers[markerIndex], wasAutoTriggered: true});
|
|
|
+ var result = parseCompletion();
|
|
|
+ return {response: result.result, markers: transform.markers};
|
|
|
}
|
|
|
|
|
|
function checkReplaceRange<S, T>(markers:Map<Int, Int>, startIndex:Int, endIndex:Int, response:CompletionResponse<S, T>, ?p:PosInfos) {
|
|
@@ -22,184 +22,184 @@ class ReplaceRanges extends TestCase {
|
|
|
}
|
|
|
|
|
|
function testType() {
|
|
|
- complete("{-1-}", 1);
|
|
|
- checkReplaceRange(markers, 1, 1, response);
|
|
|
+ var result = complete("{-1-}", 1);
|
|
|
+ checkReplaceRange(result.markers, 1, 1, result.response);
|
|
|
|
|
|
- complete("{-1-}cl{-2-}", 2);
|
|
|
- equals("cl", response.filterString);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
+ var result = complete("{-1-}cl{-2-}", 2);
|
|
|
+ equals("cl", result.response.filterString);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
}
|
|
|
|
|
|
function testModifier() {
|
|
|
- complete("extern {-1-}", 1);
|
|
|
- checkReplaceRange(markers, 1, 1, response);
|
|
|
+ var result = complete("extern {-1-}", 1);
|
|
|
+ checkReplaceRange(result.markers, 1, 1, result.response);
|
|
|
|
|
|
- complete("extern {-1-}cl{-2-}", 2);
|
|
|
- equals("cl", response.filterString);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
+ var result = complete("extern {-1-}cl{-2-}", 2);
|
|
|
+ equals("cl", result.response.filterString);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
}
|
|
|
|
|
|
function testExtends() {
|
|
|
- complete("class C extends {-1-}", 1);
|
|
|
- checkReplaceRange(markers, 1, 1, response);
|
|
|
+ var result = complete("class C extends {-1-}", 1);
|
|
|
+ checkReplaceRange(result.markers, 1, 1, result.response);
|
|
|
|
|
|
- complete("class C extends {-1-}Cl{-2-}", 2);
|
|
|
- equals("Cl", response.filterString);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
+ var result = complete("class C extends {-1-}Cl{-2-}", 2);
|
|
|
+ equals("Cl", result.response.filterString);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
|
|
|
- complete("class C {-1-}", 1);
|
|
|
- checkReplaceRange(markers, 1, 1, response);
|
|
|
+ var result = complete("class C {-1-}", 1);
|
|
|
+ checkReplaceRange(result.markers, 1, 1, result.response);
|
|
|
|
|
|
- complete("class C {-1-}ex{-2-}", 2);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
- equals("ex", response.filterString);
|
|
|
+ var result = complete("class C {-1-}ex{-2-}", 2);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
+ equals("ex", result.response.filterString);
|
|
|
|
|
|
- complete("class C {-1-}ext{-2-} {}", 2);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
- equals("ext", response.filterString);
|
|
|
+ var result = complete("class C {-1-}ext{-2-} {}", 2);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
+ equals("ext", result.response.filterString);
|
|
|
}
|
|
|
|
|
|
function testImplements() {
|
|
|
- complete("class C implements {-1-}", 1);
|
|
|
- checkReplaceRange(markers, 1, 1, response);
|
|
|
+ var result = complete("class C implements {-1-}", 1);
|
|
|
+ checkReplaceRange(result.markers, 1, 1, result.response);
|
|
|
|
|
|
- complete("class C implements {-1-}Cl{-2-}", 2);
|
|
|
- equals("Cl", response.filterString);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
+ var result = complete("class C implements {-1-}Cl{-2-}", 2);
|
|
|
+ equals("Cl", result.response.filterString);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
|
|
|
- complete("class C {-1-} {}", 1);
|
|
|
- checkReplaceRange(markers, 1, 1, response);
|
|
|
+ var result = complete("class C {-1-} {}", 1);
|
|
|
+ checkReplaceRange(result.markers, 1, 1, result.response);
|
|
|
|
|
|
- complete("class C {-1-}impl{-2-} {}", 2);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
- equals("impl", response.filterString);
|
|
|
+ var result = complete("class C {-1-}impl{-2-} {}", 2);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
+ equals("impl", result.response.filterString);
|
|
|
}
|
|
|
|
|
|
function testImport() {
|
|
|
- complete("import {-1-}", 1);
|
|
|
- checkReplaceRange(markers, 1, 1, response);
|
|
|
+ var result = complete("import {-1-}", 1);
|
|
|
+ checkReplaceRange(result.markers, 1, 1, result.response);
|
|
|
|
|
|
- complete("import {-1-}Cl{-2-}", 2);
|
|
|
- // equals("Cl", response.filterString);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
+ var result = complete("import {-1-}Cl{-2-}", 2);
|
|
|
+ // equals("Cl", result.response.filterString);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
}
|
|
|
|
|
|
function testUsing() {
|
|
|
- complete("using {-1-}", 1);
|
|
|
- checkReplaceRange(markers, 1, 1, response);
|
|
|
+ var result = complete("using {-1-}", 1);
|
|
|
+ checkReplaceRange(result.markers, 1, 1, result.response);
|
|
|
|
|
|
- complete("using {-1-}Cl{-2-}", 2);
|
|
|
- // equals("Cl", response.filterString);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
+ var result = complete("using {-1-}Cl{-2-}", 2);
|
|
|
+ // equals("Cl", result.response.filterString);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
}
|
|
|
|
|
|
function testTo() {
|
|
|
- complete("abstract A(String) to {-1-}", 1);
|
|
|
- checkReplaceRange(markers, 1, 1, response);
|
|
|
+ var result = complete("abstract A(String) to {-1-}", 1);
|
|
|
+ checkReplaceRange(result.markers, 1, 1, result.response);
|
|
|
|
|
|
- complete("abstract A(String) to {-1-} { }", 1);
|
|
|
- checkReplaceRange(markers, 1, 1, response);
|
|
|
+ var result = complete("abstract A(String) to {-1-} { }", 1);
|
|
|
+ checkReplaceRange(result.markers, 1, 1, result.response);
|
|
|
|
|
|
- complete("abstract A(String) to {-1-}Cl{-2-}", 2);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
- equals("Cl", response.filterString);
|
|
|
+ var result = complete("abstract A(String) to {-1-}Cl{-2-}", 2);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
+ equals("Cl", result.response.filterString);
|
|
|
|
|
|
- complete("abstract A(String) to {-1-}Cl{-2-} { }", 2);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
- equals("Cl", response.filterString);
|
|
|
+ var result = complete("abstract A(String) to {-1-}Cl{-2-} { }", 2);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
+ equals("Cl", result.response.filterString);
|
|
|
}
|
|
|
|
|
|
function testFrom() {
|
|
|
- complete("abstract A(String) from {-1-}", 1);
|
|
|
- checkReplaceRange(markers, 1, 1, response);
|
|
|
+ var result = complete("abstract A(String) from {-1-}", 1);
|
|
|
+ checkReplaceRange(result.markers, 1, 1, result.response);
|
|
|
|
|
|
- complete("abstract A(String) from {-1-} { }", 1);
|
|
|
- checkReplaceRange(markers, 1, 1, response);
|
|
|
+ var result = complete("abstract A(String) from {-1-} { }", 1);
|
|
|
+ checkReplaceRange(result.markers, 1, 1, result.response);
|
|
|
|
|
|
- complete("abstract A(String) from {-1-}Cl{-2-}", 2);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
- equals("Cl", response.filterString);
|
|
|
+ var result = complete("abstract A(String) from {-1-}Cl{-2-}", 2);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
+ equals("Cl", result.response.filterString);
|
|
|
|
|
|
- complete("abstract A(String) from {-1-}Cl{-2-} { }", 2);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
- equals("Cl", response.filterString);
|
|
|
+ var result = complete("abstract A(String) from {-1-}Cl{-2-} { }", 2);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
+ equals("Cl", result.response.filterString);
|
|
|
}
|
|
|
|
|
|
function testStructuralExtension() {
|
|
|
- complete("typedef Main = { } & {-1-}", 1);
|
|
|
- checkReplaceRange(markers, 1, 1, response);
|
|
|
+ var result = complete("typedef Main = { } & {-1-}", 1);
|
|
|
+ checkReplaceRange(result.markers, 1, 1, result.response);
|
|
|
|
|
|
- complete("typedef Main = { } & {-1-}Cl{-2-}", 2);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
- equals("Cl", response.filterString);
|
|
|
+ var result = complete("typedef Main = { } & {-1-}Cl{-2-}", 2);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
+ equals("Cl", result.response.filterString);
|
|
|
|
|
|
- complete("typedef Main = { > {-1-}", 1);
|
|
|
- checkReplaceRange(markers, 1, 1, response);
|
|
|
+ var result = complete("typedef Main = { > {-1-}", 1);
|
|
|
+ checkReplaceRange(result.markers, 1, 1, result.response);
|
|
|
|
|
|
- complete("typedef Main = { > {-1-}Cl{-2-}", 2);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
- equals("Cl", response.filterString);
|
|
|
+ var result = complete("typedef Main = { > {-1-}Cl{-2-}", 2);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
+ equals("Cl", result.response.filterString);
|
|
|
}
|
|
|
|
|
|
function testFields() {
|
|
|
- complete('class Main { static function main() "".{-1-}', 1);
|
|
|
- checkReplaceRange(markers, 1, 1, response);
|
|
|
+ var result = complete('class Main { static function main() "".{-1-}', 1);
|
|
|
+ checkReplaceRange(result.markers, 1, 1, result.response);
|
|
|
|
|
|
- complete('class Main { static function main() "".{-1-}char', 1);
|
|
|
- checkReplaceRange(markers, 1, 1, response);
|
|
|
+ var result = complete('class Main { static function main() "".{-1-}char', 1);
|
|
|
+ checkReplaceRange(result.markers, 1, 1, result.response);
|
|
|
|
|
|
- complete('class Main { static function main() "".{-1-}char{-2-}', 2);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
- equals("char", response.filterString);
|
|
|
+ var result = complete('class Main { static function main() "".{-1-}char{-2-}', 2);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
+ equals("char", result.response.filterString);
|
|
|
}
|
|
|
|
|
|
function testOverride() {
|
|
|
- complete("import haxe.io.Bytes; class Main extends Bytes { static function main() { } override {-1-}}", 1);
|
|
|
- checkReplaceRange(markers, 1, 1, response);
|
|
|
- equals("", response.filterString);
|
|
|
+ var result = complete("import haxe.io.Bytes; class Main extends Bytes { static function main() { } override {-1-}}", 1);
|
|
|
+ checkReplaceRange(result.markers, 1, 1, result.response);
|
|
|
+ equals("", result.response.filterString);
|
|
|
|
|
|
- complete("import haxe.io.Bytes; class Main extends Bytes { static function main() { } override {-1-}get{-2-}}", 2);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
- equals("get", response.filterString);
|
|
|
+ var result = complete("import haxe.io.Bytes; class Main extends Bytes { static function main() { } override {-1-}get{-2-}}", 2);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
+ equals("get", result.response.filterString);
|
|
|
}
|
|
|
|
|
|
function testTypedef() {
|
|
|
- complete("typedef Foo = {-1-}
|
|
|
+ var result = complete("typedef Foo = {-1-}
|
|
|
", 1);
|
|
|
- checkReplaceRange(markers, 1, 1, response);
|
|
|
- equals("", response.filterString);
|
|
|
+ checkReplaceRange(result.markers, 1, 1, result.response);
|
|
|
+ equals("", result.response.filterString);
|
|
|
|
|
|
- complete("typedef Foo = {-1-}Cl{-2-}
|
|
|
+ var result = complete("typedef Foo = {-1-}Cl{-2-}
|
|
|
", 2);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
- equals("Cl", response.filterString);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
+ equals("Cl", result.response.filterString);
|
|
|
}
|
|
|
|
|
|
function testTypehint() {
|
|
|
- complete("class Main { static function main() { var t:{-1-} }}", 1);
|
|
|
- checkReplaceRange(markers, 1, 1, response);
|
|
|
- equals("", response.filterString);
|
|
|
+ var result = complete("class Main { static function main() { var t:{-1-} }}", 1);
|
|
|
+ checkReplaceRange(result.markers, 1, 1, result.response);
|
|
|
+ equals("", result.response.filterString);
|
|
|
|
|
|
- complete("class Main { static function main() { var t:{-1-}Cl{-2-} }}", 2);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
- equals("Cl", response.filterString);
|
|
|
+ var result = complete("class Main { static function main() { var t:{-1-}Cl{-2-} }}", 2);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
+ equals("Cl", result.response.filterString);
|
|
|
|
|
|
- complete("class Main { static function main() { var t:{-1-}String{-2-} }}", 2);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
- equals("String", response.filterString);
|
|
|
+ var result = complete("class Main { static function main() { var t:{-1-}String{-2-} }}", 2);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
+ equals("String", result.response.filterString);
|
|
|
|
|
|
- complete("class Main { static function main() { var t:{-1-}Str{-2-}ing }}", 2);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
- equals("Str", response.filterString);
|
|
|
+ var result = complete("class Main { static function main() { var t:{-1-}Str{-2-}ing }}", 2);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
+ equals("Str", result.response.filterString);
|
|
|
}
|
|
|
|
|
|
function testTypeParameter() {
|
|
|
- complete("class Main { static function main() { var t:{-1-} }}", 1);
|
|
|
- checkReplaceRange(markers, 1, 1, response);
|
|
|
- equals("", response.filterString);
|
|
|
+ var result = complete("class Main { static function main() { var t:{-1-} }}", 1);
|
|
|
+ checkReplaceRange(result.markers, 1, 1, result.response);
|
|
|
+ equals("", result.response.filterString);
|
|
|
|
|
|
- complete("class Main { static function main() { var t:{-1-}Cl{-2-} }}", 2);
|
|
|
- checkReplaceRange(markers, 1, 2, response);
|
|
|
- equals("Cl", response.filterString);
|
|
|
+ var result = complete("class Main { static function main() { var t:{-1-}Cl{-2-} }}", 2);
|
|
|
+ checkReplaceRange(result.markers, 1, 2, result.response);
|
|
|
+ equals("Cl", result.response.filterString);
|
|
|
}
|
|
|
}
|