| This test checks the behavior of the 'extract to a new file' code action. |
| |
| -- flags -- |
| -ignore_extra_diags |
| |
| -- go.mod -- |
| module golang.org/lsptests/extracttofile |
| |
| go 1.18 |
| |
| -- a.go -- |
| package main |
| |
| // docs |
| func fn() {} //@codeaction("func", "refactor.extract.toNewFile", edit=function_declaration) |
| |
| func fn2() {} //@codeaction("fn2", "refactor.extract.toNewFile", edit=only_select_func_name) |
| |
| func fn3() {} //@codeaction(re`()fn3`, "refactor.extract.toNewFile", edit=zero_width_selection_on_func_name) |
| |
| // docs |
| type T int //@codeaction("type", "refactor.extract.toNewFile", edit=type_declaration) |
| |
| // docs |
| var V int //@codeaction("var", "refactor.extract.toNewFile", edit=var_declaration) |
| |
| // docs |
| const K = "" //@codeaction("const", "refactor.extract.toNewFile", edit=const_declaration) |
| |
| const ( //@codeaction("const", "refactor.extract.toNewFile", edit=const_declaration_multiple_specs) |
| P = iota |
| Q |
| R |
| ) |
| |
| func fnA () {} //@codeaction("func", "refactor.extract.toNewFile", end=mdEnd, result=multiple_declarations) |
| |
| // unattached comment |
| |
| func fnB () {} //@loc(mdEnd, "}") |
| |
| -- @const_declaration_multiple_specs/p.go -- |
| @@ -0,0 +1,7 @@ |
| +package main |
| + |
| +const ( //@codeaction("const", "refactor.extract.toNewFile", edit=const_declaration_multiple_specs) |
| + P = iota |
| + Q |
| + R |
| +) |
| -- @multiple_declarations/fna.go -- |
| package main |
| |
| func fnA() {} //@codeaction("func", "refactor.extract.toNewFile", end=mdEnd, result=multiple_declarations) |
| |
| // unattached comment |
| |
| func fnB() {} |
| -- @multiple_declarations/a.go -- |
| package main |
| |
| // docs |
| func fn() {} //@codeaction("func", "refactor.extract.toNewFile", edit=function_declaration) |
| |
| func fn2() {} //@codeaction("fn2", "refactor.extract.toNewFile", edit=only_select_func_name) |
| |
| func fn3() {} //@codeaction(re`()fn3`, "refactor.extract.toNewFile", edit=zero_width_selection_on_func_name) |
| |
| // docs |
| type T int //@codeaction("type", "refactor.extract.toNewFile", edit=type_declaration) |
| |
| // docs |
| var V int //@codeaction("var", "refactor.extract.toNewFile", edit=var_declaration) |
| |
| // docs |
| const K = "" //@codeaction("const", "refactor.extract.toNewFile", edit=const_declaration) |
| |
| const ( //@codeaction("const", "refactor.extract.toNewFile", edit=const_declaration_multiple_specs) |
| P = iota |
| Q |
| R |
| ) |
| |
| //@loc(mdEnd, "}") |
| |
| -- @const_declaration_multiple_specs/a.go -- |
| @@ -19,6 +19 @@ |
| -const ( //@codeaction("const", "refactor.extract.toNewFile", edit=const_declaration_multiple_specs) |
| - P = iota |
| - Q |
| - R |
| -) |
| - |
| -- existing.go -- |
| -- existing2.go -- |
| -- existing2.1.go -- |
| -- b.go -- |
| package main |
| func existing() {} //@codeaction("func", "refactor.extract.toNewFile", edit=file_name_conflict) |
| func existing2() {} //@codeaction("func", "refactor.extract.toNewFile", edit=file_name_conflict_again) |
| |
| -- single_import.go -- |
| package main |
| import "fmt" |
| func F() { //@codeaction("func", "refactor.extract.toNewFile", edit=single_import) |
| fmt.Println() |
| } |
| |
| -- multiple_imports.go -- |
| package main |
| import ( |
| "fmt" |
| "log" |
| time1 "time" |
| ) |
| func init(){ |
| log.Println() |
| } |
| func F() { //@codeaction("func", "refactor.extract.toNewFile", edit=multiple_imports) |
| fmt.Println() |
| } |
| func g() string{ //@codeaction("func", "refactor.extract.toNewFile", edit=renamed_import) |
| return time1.Now().string() |
| } |
| |
| -- blank_import.go -- |
| package main |
| import _ "fmt" |
| func F() {} //@codeaction("func", "refactor.extract.toNewFile", edit=blank_import) |
| |
| |
| |
| -- @blank_import/blank_import.go -- |
| @@ -3 +3 @@ |
| -func F() {} //@codeaction("func", "refactor.extract.toNewFile", edit=blank_import) |
| +//@codeaction("func", "refactor.extract.toNewFile", edit=blank_import) |
| -- @blank_import/f.go -- |
| @@ -0,0 +1,3 @@ |
| +package main |
| + |
| +func F() {} |
| -- @const_declaration/a.go -- |
| @@ -16,2 +16 @@ |
| -// docs |
| -const K = "" //@codeaction("const", "refactor.extract.toNewFile", edit=const_declaration) |
| +//@codeaction("const", "refactor.extract.toNewFile", edit=const_declaration) |
| -- @const_declaration/k.go -- |
| @@ -0,0 +1,4 @@ |
| +package main |
| + |
| +// docs |
| +const K = "" |
| -- @file_name_conflict/b.go -- |
| @@ -2 +2 @@ |
| -func existing() {} //@codeaction("func", "refactor.extract.toNewFile", edit=file_name_conflict) |
| +//@codeaction("func", "refactor.extract.toNewFile", edit=file_name_conflict) |
| -- @file_name_conflict/existing.1.go -- |
| @@ -0,0 +1,3 @@ |
| +package main |
| + |
| +func existing() {} |
| -- @file_name_conflict_again/b.go -- |
| @@ -3 +3 @@ |
| -func existing2() {} //@codeaction("func", "refactor.extract.toNewFile", edit=file_name_conflict_again) |
| +//@codeaction("func", "refactor.extract.toNewFile", edit=file_name_conflict_again) |
| -- @file_name_conflict_again/existing2.2.go -- |
| @@ -0,0 +1,3 @@ |
| +package main |
| + |
| +func existing2() {} |
| -- @function_declaration/a.go -- |
| @@ -3,2 +3 @@ |
| -// docs |
| -func fn() {} //@codeaction("func", "refactor.extract.toNewFile", edit=function_declaration) |
| +//@codeaction("func", "refactor.extract.toNewFile", edit=function_declaration) |
| -- @function_declaration/fn.go -- |
| @@ -0,0 +1,4 @@ |
| +package main |
| + |
| +// docs |
| +func fn() {} |
| -- @multiple_imports/f.go -- |
| @@ -0,0 +1,9 @@ |
| +package main |
| + |
| +import ( |
| + "fmt" |
| +) |
| + |
| +func F() { //@codeaction("func", "refactor.extract.toNewFile", edit=multiple_imports) |
| + fmt.Println() |
| +} |
| -- @multiple_imports/multiple_imports.go -- |
| @@ -3 +3 @@ |
| - "fmt" |
| + |
| @@ -10,3 +10 @@ |
| -func F() { //@codeaction("func", "refactor.extract.toNewFile", edit=multiple_imports) |
| - fmt.Println() |
| -} |
| -- @only_select_func_name/a.go -- |
| @@ -6 +6 @@ |
| -func fn2() {} //@codeaction("fn2", "refactor.extract.toNewFile", edit=only_select_func_name) |
| +//@codeaction("fn2", "refactor.extract.toNewFile", edit=only_select_func_name) |
| -- @only_select_func_name/fn2.go -- |
| @@ -0,0 +1,3 @@ |
| +package main |
| + |
| +func fn2() {} |
| -- @single_import/f.go -- |
| @@ -0,0 +1,9 @@ |
| +package main |
| + |
| +import ( |
| + "fmt" |
| +) |
| + |
| +func F() { //@codeaction("func", "refactor.extract.toNewFile", edit=single_import) |
| + fmt.Println() |
| +} |
| -- @single_import/single_import.go -- |
| @@ -2,4 +2 @@ |
| -import "fmt" |
| -func F() { //@codeaction("func", "refactor.extract.toNewFile", edit=single_import) |
| - fmt.Println() |
| -} |
| -- @type_declaration/a.go -- |
| @@ -10,2 +10 @@ |
| -// docs |
| -type T int //@codeaction("type", "refactor.extract.toNewFile", edit=type_declaration) |
| +//@codeaction("type", "refactor.extract.toNewFile", edit=type_declaration) |
| -- @type_declaration/t.go -- |
| @@ -0,0 +1,4 @@ |
| +package main |
| + |
| +// docs |
| +type T int |
| -- @var_declaration/a.go -- |
| @@ -13,2 +13 @@ |
| -// docs |
| -var V int //@codeaction("var", "refactor.extract.toNewFile", edit=var_declaration) |
| +//@codeaction("var", "refactor.extract.toNewFile", edit=var_declaration) |
| -- @var_declaration/v.go -- |
| @@ -0,0 +1,4 @@ |
| +package main |
| + |
| +// docs |
| +var V int |
| -- @zero_width_selection_on_func_name/a.go -- |
| @@ -8 +8 @@ |
| -func fn3() {} //@codeaction(re`()fn3`, "refactor.extract.toNewFile", edit=zero_width_selection_on_func_name) |
| +//@codeaction(re`()fn3`, "refactor.extract.toNewFile", edit=zero_width_selection_on_func_name) |
| -- @zero_width_selection_on_func_name/fn3.go -- |
| @@ -0,0 +1,3 @@ |
| +package main |
| + |
| +func fn3() {} |
| -- @renamed_import/g.go -- |
| @@ -0,0 +1,9 @@ |
| +package main |
| + |
| +import ( |
| + time1 "time" |
| +) |
| + |
| +func g() string { //@codeaction("func", "refactor.extract.toNewFile", edit=renamed_import) |
| + return time1.Now().string() |
| +} |
| -- @renamed_import/multiple_imports.go -- |
| @@ -5 +5 @@ |
| - time1 "time" |
| + |
| @@ -13,4 +13 @@ |
| -func g() string{ //@codeaction("func", "refactor.extract.toNewFile", edit=renamed_import) |
| - return time1.Now().string() |
| -} |
| - |