{
  "method": "textDocument/codeAction",
  "result": [
    {
      "title": "Extract to function in module scope",
      "kind": "refactor.extract",
      "diagnostics": [],
      "edit": {
        "changes": {
          "<PLACEHOLDER_PROJECT_URL>/refactor-extract-function-import-type.js": [
            {
              "range": {
                "start": {
                  "line": 2,
                  "character": 0
                },
                "end": {
                  "line": 2,
                  "character": 0
                }
              },
              "newText": "import type { Foo } from \"./refactor-extract-function-type-provider\";\n\n"
            },
            {
              "range": {
                "start": {
                  "line": 6,
                  "character": 14
                },
                "end": {
                  "line": 6,
                  "character": 23
                }
              },
              "newText": "newFunction(getFoo2)"
            },
            {
              "range": {
                "start": {
                  "line": 8,
                  "character": 1
                },
                "end": {
                  "line": 8,
                  "character": 1
                }
              },
              "newText": "\nfunction newFunction(getFoo2: () => Foo): Foo {\n  const foo = getFoo2();\n  return foo;\n}"
            }
          ]
        }
      },
      "command": {
        "title": "",
        "command": "log:org.flow:<PLACEHOLDER_PROJECT_URL>",
        "arguments": [
          "textDocument/codeAction",
          "refactor_extract",
          "Extract to function in module scope"
        ]
      }
    },
    {
      "title": "Extract to inner function in function 'test'",
      "kind": "refactor.extract",
      "diagnostics": [],
      "edit": {
        "changes": {
          "<PLACEHOLDER_PROJECT_URL>/refactor-extract-function-import-type.js": [
            {
              "range": {
                "start": {
                  "line": 2,
                  "character": 0
                },
                "end": {
                  "line": 2,
                  "character": 0
                }
              },
              "newText": "import type { Foo } from \"./refactor-extract-function-type-provider\";\n\n"
            },
            {
              "range": {
                "start": {
                  "line": 6,
                  "character": 14
                },
                "end": {
                  "line": 6,
                  "character": 21
                }
              },
              "newText": "newFunction"
            },
            {
              "range": {
                "start": {
                  "line": 7,
                  "character": 19
                },
                "end": {
                  "line": 7,
                  "character": 19
                }
              },
              "newText": "function newFunction(): Foo {\n    const foo = getFoo2();\n    return foo;\n  }"
            }
          ]
        }
      },
      "command": {
        "title": "",
        "command": "log:org.flow:<PLACEHOLDER_PROJECT_URL>",
        "arguments": [
          "textDocument/codeAction",
          "refactor_extract",
          "Extract to inner function in function 'test'"
        ]
      }
    }
  ]
}
