Enhancements
- If the agent is unable to connect to a server app immediately, it will now retry indefinitely until it succeeds or the language server exits ([77](https://github.com/swyddfa/lsp-devtools/issues/77))
- It is now possible to select completion items in the ``lsp-devtools client`` ([108](https://github.com/swyddfa/lsp-devtools/issues/108))
- Commands like ``lsp-devtools record`` and ``lsp-devtools inspect`` will no longer exit/stop capturing messages after the first LSP session exits ([110](https://github.com/swyddfa/lsp-devtools/issues/110))
pytest-lsp-v0.3.1
<h1 class="title">v0.3.1 - 2023-10-06</h1>
<p>
This release includes some minor breaking changes if you were using the lower-level APIs e.g <tt>make_client_server</tt>.
</p>
<p>
See <a href="https://github.com/swyddfa/esbonio/commit/8565add660ad015c989cd3c4a251dede92525997">this commit</a> for a sample migration
</p>
<div class="section" id="enhancements">
<h1>Enhancements</h1>
<ul class="simple">
<li>pytest-lsp's <tt class="docutils literal">LanguageClient</tt> is now based on the one provided by <tt class="docutils literal">pygls</tt>.
The main benefit is that the server connection is now based on an <tt class="docutils literal">asyncio.subprocess.Process</tt> removing the need for pytest-lsp to constantly check to see if the server is still running. (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/61">#61</a>)</li>
<li>Fixtures created with the <cite>&64;pytest_lsp.fixture</cite> decorator can now request additional pytest fixtures (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/71">#71</a>)</li>
<li>It is now possible to set the environment variables that the server under test is launched with. (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/72">#72</a>)</li>
<li>It is now possible to test any JSON-RPC based server with <tt class="docutils literal"><span class="pre">pytest-lsp</span></tt>.
Note however, this support will only ever extend to managing the client-server connection. (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/73">#73</a>)</li>
</ul>
</div>
<div class="section" id="misc">
<h1>Misc</h1>
<ul class="simple">
<li><tt class="docutils literal">make_test_client</tt> has been renamed to <tt class="docutils literal">make_test_lsp_client</tt> (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/73">#73</a>)</li>
<li>Drop support for Python 3.7, add support for Python 3.12 (<a class="reference external" href="https://github.com/swyddfa/lsp-devtools/issues/75">#75</a>)</li>
</ul>
</div>