[
  {
    "jsonrpc": "2.0",
    "id": 0,
    "method": "initialize",
    "params": {
      "processId": 11082,
      "rootPath": "@ROOT@/002coverage",
      "rootUri": "file://@ROOT@/002coverage",
      "capabilities": {
        "workspace": {
          "applyEdit": true,
          "workspaceEdit": {
            "documentChanges": true
          },
          "didChangeConfiguration": {
            "dynamicRegistration": true
          },
          "didChangeWatchedFiles": {
            "dynamicRegistration": true
          },
          "symbol": {
            "dynamicRegistration": true,
            "symbolKind": {
              "valueSet": [
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15,
                16,
                17,
                18,
                19,
                20,
                21,
                22,
                23,
                24,
                25,
                26
              ]
            }
          },
          "executeCommand": {
            "dynamicRegistration": true
          },
          "configuration": true,
          "workspaceFolders": true
        },
        "textDocument": {
          "publishDiagnostics": {
            "relatedInformation": true
          },
          "synchronization": {
            "dynamicRegistration": true,
            "willSave": true,
            "willSaveWaitUntil": true,
            "didSave": true
          },
          "completion": {
            "dynamicRegistration": true,
            "contextSupport": true,
            "completionItem": {
              "snippetSupport": true,
              "commitCharactersSupport": true,
              "documentationFormat": [
                "markdown",
                "plaintext"
              ],
              "deprecatedSupport": true
            },
            "completionItemKind": {
              "valueSet": [
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15,
                16,
                17,
                18,
                19,
                20,
                21,
                22,
                23,
                24,
                25
              ]
            }
          },
          "hover": {
            "dynamicRegistration": true,
            "contentFormat": [
              "markdown",
              "plaintext"
            ]
          },
          "signatureHelp": {
            "dynamicRegistration": true,
            "signatureInformation": {
              "documentationFormat": [
                "markdown",
                "plaintext"
              ]
            }
          },
          "definition": {
            "dynamicRegistration": true
          },
          "references": {
            "dynamicRegistration": true
          },
          "documentHighlight": {
            "dynamicRegistration": true
          },
          "documentSymbol": {
            "dynamicRegistration": true,
            "symbolKind": {
              "valueSet": [
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12,
                13,
                14,
                15,
                16,
                17,
                18,
                19,
                20,
                21,
                22,
                23,
                24,
                25,
                26
              ]
            }
          },
          "codeAction": {
            "dynamicRegistration": true
          },
          "codeLens": {
            "dynamicRegistration": true
          },
          "formatting": {
            "dynamicRegistration": true
          },
          "rangeFormatting": {
            "dynamicRegistration": true
          },
          "onTypeFormatting": {
            "dynamicRegistration": true
          },
          "rename": {
            "dynamicRegistration": true
          },
          "documentLink": {
            "dynamicRegistration": true
          },
          "typeDefinition": {
            "dynamicRegistration": true
          },
          "implementation": {
            "dynamicRegistration": true
          },
          "colorProvider": {
            "dynamicRegistration": true
          }
        }
      },
      "trace": "off",
      "workspaceFolders": [
        {
          "uri": "file://@ROOT@/002coverage",
          "name": "002coverage"
        }
      ]
    }
  },
  {
    "jsonrpc": "2.0",
    "method": "initialized",
    "params": {}
  },
  {
    "jsonrpc": "2.0",
    "method": "textDocument/didOpen",
    "params": {
      "textDocument": {
        "uri": "file://@ROOT@/files/adder.vhdl",
        "languageId": "vhdl",
        "version": 1,
        "text": "\nentity adder is\n  -- `i0`, `i1`, and the carry-in `ci` are inputs of the adder.\n  -- `s` is the sum output, `co` is the carry-out.\n  port (i0, i1 : in bit; ci : in bit; s : out bit; co : out bit);\nend adder;\n\narchitecture rtl of adder is\nbegin\n  --  This full-adder architecture contains two concurrent assignments.\n  --  Compute the sum.\n  s <= i0 xor i1 xor ci;\n  --  Compute the carry.\n  co <= (i0 and i1) or (i0 and ci) or (i1 and ci);\nend rtl;\n\n"
      }
    }
  },
  {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "textDocument/documentSymbol",
    "params": {
      "textDocument": {
        "uri": "file://@ROOT@/files/adder.vhdl"
      }
    }
  },
  {
    "jsonrpc": "2.0",
    "method": "textDocument/didOpen",
    "params": {
      "textDocument": {
        "uri": "file://@ROOT@/files/adder_tb.vhdl",
        "languageId": "vhdl",
        "version": 1,
        "text": "\n--  A testbench has no ports.\nentity adder_tb is\nend adder_tb;\n\narchitecture behav of adder_tb is\n  --  Declaration of the component that will be instantiated.\n  component adder\n    port (i0, i1 : in bit; ci : in bit; s : out bit; co : out bit);\n  end component;\n\n  --  Specifies which entity is bound with the component.\n  for adder_0: adder use entity work.adder;\n  signal i0, i1, ci, s, co : bit;\nbegin\n  --  Component instantiation.\n  adder_0: adder port map (i0 => i0, i1 => i1, ci => ci,\n                           s => s, co => co);\n\n  --  This process does the real job.\n  process\n    type pattern_type is record\n      --  The inputs of the adder.\n      i0, i1, ci : bit;\n      --  The expected outputs of the adder.\n      s, co : bit;\n    end record;\n    --  The patterns to apply.\n    type pattern_array is array (natural range <>) of pattern_type;\n    constant patterns : pattern_array :=\n      (('0', '0', '0', '0', '0'),\n       ('0', '0', '1', '1', '0'),\n       ('0', '1', '0', '1', '0'),\n       ('0', '1', '1', '0', '1'),\n       ('1', '0', '0', '1', '0'),\n       ('1', '0', '1', '0', '1'),\n       ('1', '1', '0', '0', '1'),\n       ('1', '1', '1', '1', '1'));\n  begin\n    --  Check each pattern.\n    for i in patterns'range loop\n      --  Set the inputs.\n      i0 <= patterns(i).i0;\n      i1 <= patterns(i).i1;\n      ci <= patterns(i).ci;\n      --  Wait for the results.\n      wait for 1 ns;\n      --  Check the outputs.\n      assert s = patterns(i).s\n        report \"bad sum value\" severity error;\n      assert co = patterns(i).co\n        report \"bad carry out value\" severity error;\n    end loop;\n    assert false report \"end of test\" severity note;\n    --  Wait forever; this will finish the simulation.\n    wait;\n  end process;\nend behav;\n\n\n"
      }
    }
  },
  {
    "jsonrpc": "2.0",
    "id": 2,
    "method": "textDocument/documentSymbol",
    "params": {
      "textDocument": {
        "uri": "file://@ROOT@/files/adder_tb.vhdl"
      }
    }
  },
  {
    "jsonrpc": "2.0",
    "id": 3,
    "method": "textDocument/definition",
    "params": {
      "textDocument": {
        "uri": "file://@ROOT@/files/adder_tb.vhdl"
      },
      "position": {
        "line": 12,
        "character": 39
      }
    }
  },
  {
    "jsonrpc": "2.0",
    "method": "textDocument/didChange",
    "params": {
      "textDocument": {
        "uri": "file://@ROOT@/files/adder.vhdl",
        "version": 2
      },
      "contentChanges": [
        {
          "range": {
            "start": {
              "line": 11,
              "character": 24
            },
            "end": {
              "line": 11,
              "character": 24
            }
          },
          "rangeLength": 0,
          "text": "\n  "
        }
      ]
    }
  },
  {
    "jsonrpc": "2.0",
    "id": 4,
    "method": "textDocument/documentSymbol",
    "params": {
      "textDocument": {
        "uri": "file://@ROOT@/files/adder.vhdl"
      }
    }
  },
  {
    "jsonrpc": "2.0",
    "method": "textDocument/didChange",
    "params": {
      "textDocument": {
        "uri": "file://@ROOT@/files/adder.vhdl",
        "version": 3
      },
      "contentChanges": [
        {
          "range": {
            "start": {
              "line": 12,
              "character": 2
            },
            "end": {
              "line": 12,
              "character": 2
            }
          },
          "rangeLength": 0,
          "text": "e"
        }
      ]
    }
  },
  {
    "jsonrpc": "2.0",
    "id": 5,
    "method": "textDocument/documentSymbol",
    "params": {
      "textDocument": {
        "uri": "file://@ROOT@/files/adder.vhdl"
      }
    }
  },
  {
    "jsonrpc": "2.0",
    "method": "textDocument/didChange",
    "params": {
      "textDocument": {
        "uri": "file://@ROOT@/files/adder.vhdl",
        "version": 4
      },
      "contentChanges": [
        {
          "range": {
            "start": {
              "line": 12,
              "character": 3
            },
            "end": {
              "line": 12,
              "character": 3
            }
          },
          "rangeLength": 0,
          "text": "r"
        }
      ]
    }
  },
  {
    "jsonrpc": "2.0",
    "method": "textDocument/didChange",
    "params": {
      "textDocument": {
        "uri": "file://@ROOT@/files/adder.vhdl",
        "version": 5
      },
      "contentChanges": [
        {
          "range": {
            "start": {
              "line": 12,
              "character": 4
            },
            "end": {
              "line": 12,
              "character": 4
            }
          },
          "rangeLength": 0,
          "text": "r"
        }
      ]
    }
  },
  {
    "jsonrpc": "2.0",
    "id": 6,
    "method": "textDocument/documentSymbol",
    "params": {
      "textDocument": {
        "uri": "file://@ROOT@/files/adder.vhdl"
      }
    }
  },
  {
    "jsonrpc": "2.0",
    "method": "textDocument/didChange",
    "params": {
      "textDocument": {
        "uri": "file://@ROOT@/files/adder.vhdl",
        "version": 6
      },
      "contentChanges": [
        {
          "range": {
            "start": {
              "line": 12,
              "character": 5
            },
            "end": {
              "line": 12,
              "character": 5
            }
          },
          "rangeLength": 0,
          "text": ";"
        }
      ]
    }
  },
  {
    "jsonrpc": "2.0",
    "id": 7,
    "method": "textDocument/documentSymbol",
    "params": {
      "textDocument": {
        "uri": "file://@ROOT@/files/adder.vhdl"
      }
    }
  },
  {
    "jsonrpc": "2.0",
    "method": "textDocument/didChange",
    "params": {
      "textDocument": {
        "uri": "file://@ROOT@/files/adder.vhdl",
        "version": 7
      },
      "contentChanges": [
        {
          "range": {
            "start": {
              "line": 12,
              "character": 2
            },
            "end": {
              "line": 13,
              "character": 2
            }
          },
          "rangeLength": 7,
          "text": ""
        }
      ]
    }
  }
]