Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Sourcekit Lsp | 2,836 | a day ago | 42 | apache-2.0 | Swift | |||||
Language Server Protocol implementation for Swift and C-based languages | ||||||||||
Lsif Py | 31 | a year ago | 8 | mit | Python | |||||
Language Server Indexing Format (LSIF) generator for Python | ||||||||||
Sfsdb | 30 | 4 years ago | 1 | mit | Rust | |||||
Simple yet extensible database you already know how to use | ||||||||||
Lsif Java | 26 | 2 months ago | 12 | other | Java | |||||
Language Server Indexing Format implementation for Java | ||||||||||
Gensim Lsi Word Similarities | 10 | 6 years ago | mit | Python | ||||||
Generate word-word similarities from Gensim's latent semantic indexing (Python) | ||||||||||
Solr Lt | 7 | 12 years ago | JavaScript | |||||||
Solr server with Lithuanian language support | ||||||||||
Xodb | 7 | 1 | 10 years ago | 37 | August 06, 2013 | 1 | mit | Python | ||
Xapian python object database | ||||||||||
Wpml Elasticpress | 5 | a month ago | 2 | gpl-3.0 | PHP | |||||
WPML ElasticPress adds support for languages in ElasticPress. | ||||||||||
Applied Data Science In Python On Coursera 1 | 4 | 6 years ago | Jupyter Notebook | |||||||
This repository shows individual programming tasks + programming practice tasks in Python (Pandas, Numpy, Jupyter Notebooks) which I completed during Applied Data Science course on Coursera. | ||||||||||
Jinsect | 4 | 3 years ago | Java | |||||||
The JINSECT toolkit is a Java-based toolkit and library that supports and demonstrates the use of n-gram graphs within Natural Language Processing applications, ranging from summarization and summary evaluation to text classification and indexing. |
SourceKit-LSP is an implementation of the Language Server Protocol (LSP) for Swift and C-based languages. It provides features like code-completion and jump-to-definition to editors that support LSP. SourceKit-LSP is built on top of sourcekitd and clangd for high-fidelity language support, and provides a powerful source code index as well as cross-language support. SourceKit-LSP supports projects that use the Swift Package Manager.
The SourceKit-LSP server is included with the Swift toolchain. Depending on how you installed Swift, you may already have SourceKit-LSP. Make sure you build your package with the same toolchain as you use sourcekit-lsp from to ensure compatibility.
Get SourceKit-LSP with a Swift toolchain
If you have installed Xcode 11.4+ or the corresponding Command Line Tools package, the SourceKit-LSP server is included and can be run with xcrun sourcekit-lsp
.
If you are using a toolchain from Swift.org, the SourceKit-LSP server is included and can be run with xcrun --toolchain swift sourcekit-lsp
on macOS, or using the full path to the sourcekit-lsp
executable on Linux.
If your toolchain did not come with SourceKit-LSP, see Development for how to build it from source.
Configure your editor to use SourceKit-LSP. See Editors for more information about editor integration.
Build the project you are working on with swift build
using the same toolchain as the SourceKit-LSP server. The language server depends on the build to provide module dependencies and to update the global index.
For more information about developing SourceKit-LSP itself, see Development. For information about developing SourceKit-LSP clients (like editors or their language plugins), see Client Development.
SourceKit-LSP uses a global index called IndexStoreDB to provide features that cross file or module boundaries, such as jump-to-definition or find-references. To efficiently create an index of your source code we use a technique called "indexing while building". When the project is compiled for debugging using swift build
, the compiler (swiftc or clang) automatically produces additional raw index data that is read by our indexer. Producing this information during compilation saves work and ensures that any time the project is built the index is updated and fully accurate.
In the future we intend to also provide automatic background indexing so that we can update the index in between builds or to include code that's not always built like unit tests. In the meantime, building your project should bring our index up to date.
SourceKit-LSP is still in early development, so you may run into rough edges with any of the features. The following table shows the status of various features when using the latest development toolchain snapshot. See Caveats for important known issues you may run into.
Feature | Status | Notes |
---|---|---|
Swift | ||
C/C++/ObjC | Uses clangd | |
Code completion | ||
Quick Help (Hover) | ||
Diagnostics | ||
Fix-its | ||
Jump to Definition | ||
Find References | ||
Background Indexing | Build project to update the index using Indexing While Building | |
Workspace Symbols | ||
Rename | ||
Local Refactoring | ||
Formatting | ||
Folding | ||
Syntax Highlighting | Both syntactic and semantic tokens | |
Document Symbols | ||
Call Hierarchy | ||
Type Hierarchy |