@@ -1039,3 +1039,51 @@ func main() {}
1039
1039
)
1040
1040
})
1041
1041
}
1042
+
1043
+ // Reproduces golang/go#38424.
1044
+ func TestCutAndPaste (t * testing.T ) {
1045
+ const basic = `
1046
+ -- go.mod --
1047
+ module mod.com
1048
+
1049
+ go 1.14
1050
+ -- main2.go --
1051
+ package main
1052
+ `
1053
+ runner .Run (t , basic , func (t * testing.T , env * Env ) {
1054
+ env .CreateBuffer ("main.go" , "" )
1055
+ env .Await (CompletedWork (lsp .DiagnosticWorkTitle (lsp .FromDidOpen ), 1 ))
1056
+
1057
+ env .Editor .SaveBufferWithoutActions (env .Ctx , "main.go" )
1058
+ env .Await (
1059
+ CompletedWork (lsp .DiagnosticWorkTitle (lsp .FromDidSave ), 1 ),
1060
+ CompletedWork (lsp .DiagnosticWorkTitle (lsp .FromDidChangeWatchedFiles ), 1 ),
1061
+ )
1062
+
1063
+ env .EditBuffer ("main.go" , fake .NewEdit (0 , 0 , 0 , 0 , `package main
1064
+
1065
+ func main() {
1066
+ }
1067
+ ` ))
1068
+ env .Await (CompletedWork (lsp .DiagnosticWorkTitle (lsp .FromDidChange ), 1 ))
1069
+
1070
+ env .SaveBuffer ("main.go" )
1071
+ env .Await (
1072
+ CompletedWork (lsp .DiagnosticWorkTitle (lsp .FromDidSave ), 2 ),
1073
+ CompletedWork (lsp .DiagnosticWorkTitle (lsp .FromDidChangeWatchedFiles ), 2 ),
1074
+ )
1075
+
1076
+ env .EditBuffer ("main.go" , fake .NewEdit (0 , 0 , 4 , 0 , "" ))
1077
+ env .Await (CompletedWork (lsp .DiagnosticWorkTitle (lsp .FromDidChange ), 2 ))
1078
+
1079
+ env .EditBuffer ("main.go" , fake .NewEdit (0 , 0 , 0 , 0 , `package main
1080
+
1081
+ func main() {
1082
+ var x int
1083
+ }
1084
+ ` ))
1085
+ env .Await (
1086
+ env .DiagnosticAtRegexp ("main.go" , "x" ),
1087
+ )
1088
+ })
1089
+ }
0 commit comments