<h1 class="title">v0.2.0 - 2023-10-06</h1>
<div class="section" id="features">
<h1>Features</h1>
<ul class="simple">
<li><strong>Experimental</strong> Add proof of concept <tt class="docutils literal"><span class="pre">lsp-devtools</span> client</tt> command that builds on textual's <tt class="docutils literal">TextArea</tt> widget to offer an interactive language server client. (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/83">#83</a>)</li>
</ul>
</div>
<div class="section" id="fixes">
<h1>Fixes</h1>
<ul class="simple">
<li>The <tt class="docutils literal"><span class="pre">lsp-devtools</span> agent</tt> command no longer fails to exit once an LSP session closes. (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/17">#17</a>)</li>
<li><tt class="docutils literal"><span class="pre">lsp-devtools</span> record</tt> no longer emits a <tt class="docutils literal">ResourceWarning</tt> (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/28">#28</a>)</li>
<li>As a consequence of the new architecture, commands like <tt class="docutils literal"><span class="pre">lsp-devtools</span> record</tt> no longer miss the start of an LSP session (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/29">#29</a>)</li>
<li><tt class="docutils literal"><span class="pre">lsp-devtools</span> agent</tt> no longer emits <tt class="docutils literal">Unable to send data, no available transport!</tt> messages (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/38">#38</a>)</li>
</ul>
</div>
<div class="section" id="misc">
<h1>Misc</h1>
<ul>
<li><p class="first">The <tt class="docutils literal"><span class="pre">lsp-devtools</span> agent</tt> now uses a TCP connection, which should make distribution easier (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/37">#37</a>)</p>
</li>
<li><p class="first">Drop Python 3.7 support (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/77">#77</a>)</p>
</li>
<li><p class="first">The <tt class="docutils literal"><span class="pre">lsp-devtools</span> capabilities</tt> command has been removed in favour of <tt class="docutils literal"><span class="pre">lsp-devtools</span> record</tt></p>
<p>The <tt class="docutils literal"><span class="pre">lsp-devtools</span> tui</tt> command has been renamed to <tt class="docutils literal"><span class="pre">lsp-devtools</span> inspect</tt> (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/83">#83</a>)</p>
</li>
</ul>
</div>
pytest-lsp-v0.3.0
<h1 class="title">v0.3.0 - 2023-05-19</h1>
<div class="section" id="features">
<h1>Features</h1>
<ul>
<li><p class="first"><tt class="docutils literal">&64;pytest_lsp.fixture</tt> now supports the <tt class="docutils literal">yield</tt> statement, allowing the <tt class="docutils literal">client</tt> fixture definition to be responsible for initialising and shutting down the LSP session granting the test author full control over the contents of the <tt class="docutils literal">initialize</tt> request.</p>
<p>This is a breaking change, see the documentation for details and <a class="reference external" href="https://github.com/swyddfa/esbonio/pull/571">this PR</a> for an example migration. (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/47">#47</a>)</p>
</li>
<li><p class="first">If a client's capabilities has been set, pytest-lsp will automatically check the server's response to see if it is compatible with the capabilities the client provided.</p>
<p>If an issue is detected, pytest-lsp will emit an <tt class="docutils literal">LspSpecificationWarning</tt></p>
<p><strong>Note:</strong> This relies on a dedicated <tt class="docutils literal">check_xxx</tt> function being written for each request so only a subset of the LSP spec is currently supported. (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/57">#57</a>)</p>
</li>
</ul>
</div>
<div class="section" id="docs">
<h1>Docs</h1>
<ul class="simple">
<li>Add getting started guide (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/47">#47</a>)</li>
<li>Add note on redefining the <tt class="docutils literal">event_loop</tt> fixture to match the client fixture's scope (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/49">#49</a>)</li>
<li>Add documentation on the built in features of the test LSP client (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/50">#50</a>)</li>
<li>Add example on using parameterised fixtures to test with multiple clients (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/51">#51</a>)</li>
</ul>
</div>
<div class="section" id="misc">
<h1>Misc</h1>
<ul class="simple">
<li>The client-server connection is now managed by a single asyncio event loop, rather than spinning up multiple threads, resulting in a much simpler architecture. (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/44">#44</a>)</li>
</ul>
</div>
<div class="section" id="removed">
<h1>Removed</h1>
<ul>
<li><p class="first">Helper methods like <tt class="docutils literal">completion_request</tt> and <tt class="docutils literal">notify_did_open</tt> have been removed.
The equivalent methods provided by the LSP specification like <tt class="docutils literal">text_document_completion_async</tt> and <tt class="docutils literal">text_document_did_open</tt> should be used directly.</p>
<p>See <a class="reference external" href="https://github.com/swyddfa/esbonio/pull/571">this PR</a> for an example migration. (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/56">#56</a>)</p>
</li>
</ul>
</div>
pytest-lsp-v0.2.1
<h1 class="title">v0.2.1 - 2023-01-14</h1>
<h2 class="subtitle" id="fixes">Fixes</h2>
<ul class="simple">
<li>Ensure that the test client returns a <tt class="docutils literal">ShowDocumentResult</tt> for <tt class="docutils literal">window/showDocument</tt> requests. (<a class="reference external" href="https://github.com/alcarney/lsp-devtools/issues/34">#34</a>)</li>
</ul>