<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 16 May 2020, at 03:31, Allan Odgaard <<a href="mailto:mailinglist@textmate.org" class="">mailinglist@textmate.org</a>> wrote:</div><div class=""><div class=""><div style="font-family:sans-serif" class="">
<div style="white-space:normal" class=""><p dir="auto" class="">From Apple: <em class="">“The system detects how an app was built by looking at the “SDK” entry in the app’s Mach-O header. When you relink your app against the latest SDK, you might notice different behaviors, some of which might cause incompatibilities.”</em>.</p></div></div></div></div></blockquote><div>Ha! Sneaky.</div><blockquote type="cite" class=""><div class=""><div class=""><div style="font-family:sans-serif" class=""><div style="white-space:normal" class=""><blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px" class="">
</blockquote></div>
<div style="white-space:normal" class=""><p dir="auto" class="">I tried to find a working LSP implementation that would provide “intelligence” for some of my projects, and the results were somewhat disappointing.</p></div></div></div></div></blockquote>Hmm, that’s unfortunate. It depends on which language those projects are written in, but for TextMate which is implemented in C++ and Objective-C++ there’s clangd [1]. I have not used it myself though so I don’t know how good it is. There’s also SourceKit-LSP [2], which is an LSP server for Swift and C-based languages. It uses clangd under the hood for the C-based languages. I don’t know if it’s any better than plain clangd.</div><div><br class=""></div><div>For testing the client you could try the LSP server that Visual Studio Code uses for C# or TypeScript. I would expect those to be top notch, since they’re heavily prompted by Microsoft.</div><div><br class=""></div><div><a href="http://langserver.org" class="">langserver.org</a> has a list of LSP server implementations as well [3].</div><div><blockquote type="cite" class=""><div class=""><div style="font-family:sans-serif" class=""><div style="white-space:normal" class=""><p dir="auto" class="">But too early to give any ETA, as I currently add items to my to-do faster than I can check them off (as mentioned, this isn’t just about LSP, there are lots of other things that needs to be improved in TextMate, and most of it really requires major overhauls).</p></div></div></div></blockquote></div>Yeah, I can imagine.<div class=""><br class=""></div><div class="">Not sure if you want/need it but there’s a Swift library, SwiftLSPClient [4], for communicating with LSP servers. It’s used by the Chime text editor [5], a Go editor for macOS.</div><div class=""><br class=""></div><div class="">Perhaps it’s too soon to start discussing, but clangd supports some useful extensions to the LSP protocol [6]. I’m mostly thinking of the UTF-8 offsets. Code completion scores would be nice to have as well.</div><div class=""><br class=""></div><div class=""><div>[1] <a href="https://clangd.llvm.org" class="">https://clangd.llvm.org</a></div><div>[2] <a href="https://github.com/apple/sourcekit-lsp" class="">https://github.com/apple/sourcekit-lsp</a></div><div>[3] <a href="https://langserver.org/#implementations-server" class="">https://langserver.org/#implementations-server</a></div></div><div class="">[4] <a href="https://github.com/ChimeHQ/SwiftLSPClient" class="">https://github.com/ChimeHQ/SwiftLSPClient</a></div><div class="">[5] <a href="https://www.chimehq.com" class="">https://www.chimehq.com</a></div><div class="">[6] <a href="https://clangd.llvm.org/extensions.html" class="">https://clangd.llvm.org/extensions.html</a><br class=""><div class=""><br class=""><div class="">
<div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;">-- <br class="">/Jacob Carlborg</div>

</div>
<br class=""></div></div></body></html>