diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4f0fc1c2..3e73e7c7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,13 +27,13 @@ jobs: - uses: actions/checkout@v2 - run: yarn global add @bazel/bazelisk - run: bazel build //... --//semanticdb-javac:enabled=true - - run: bazel run lsif-semanticdb:bazel -- --sourceroot "$PWD" - - run: du -h dump.lsif-typed - - run: bazel build //... --@lsif_java//semanticdb-javac:enabled=true + - run: bazel run scip-semanticdb:bazel -- --sourceroot "$PWD" + - run: du -h index.scip + - run: bazel build //... --@scip_java//semanticdb-javac:enabled=true working-directory: examples/bazel-example - - run: bazel run @lsif_java//lsif-semanticdb:bazel -- --sourceroot "$PWD" + - run: bazel run @scip_java//scip-semanticdb:bazel -- --sourceroot "$PWD" working-directory: examples/bazel-example - - run: du -h dump.lsif-typed + - run: du -h index.scip working-directory: examples/bazel-example check: runs-on: ubuntu-latest diff --git a/.github/workflows/sourcegraph.yml b/.github/workflows/sourcegraph.yml index 1e8c8e98..8e5f24ef 100644 --- a/.github/workflows/sourcegraph.yml +++ b/.github/workflows/sourcegraph.yml @@ -6,9 +6,9 @@ on: - olafurpg/lets-go pull_request: jobs: - lsif: + scip: runs-on: ubuntu-latest - name: "Upload LSIF" + name: "Upload SCIP" steps: - uses: actions/checkout@v2 - uses: olafurpg/setup-scala@v13 diff --git a/.gitignore b/.gitignore index 3bd2cd23..18c8f183 100644 --- a/.gitignore +++ b/.gitignore @@ -52,11 +52,12 @@ project/metals.sbt out/ *.hnir test-report.json -dump.lsif +index.scip ./generated /sources bazel-bin -bazel-lsif-java +bazel-scip-java bazel-out bazel-testlogs +bazel-lsif-java diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fd947f01..a7a5c526 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,3 +1,3 @@ # Contributing guide -See https://sourcegraph.github.io/lsif-java/docs/contributing.html +See https://sourcegraph.github.io/scip-java/docs/contributing.html diff --git a/README.md b/README.md index 38fcca9d..3d5cf98a 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# Java indexer for the Language Server Index Format (LSIF) ![](https://img.shields.io/badge/status-development-yellow?style=flat) +# Java, Scala, and Kotlin indexer for SCIP ![](https://img.shields.io/badge/status-development-green?style=flat) | Documentation | Link | | -------------------- | ---------------------------------------------------------------------- | -| Landing page | https://sourcegraph.github.io/lsif-java | -| Getting started | https://sourcegraph.github.io/lsif-java/docs/getting-started.html | -| Manual configuration | https://sourcegraph.github.io/lsif-java/docs/manual-configuration.html | -| Contributing | https://sourcegraph.github.io/lsif-java/docs/contributing.html | -| Design | https://sourcegraph.github.io/lsif-java/docs/design.html | +| Landing page | https://sourcegraph.github.io/scip-java | +| Getting started | https://sourcegraph.github.io/scip-java/docs/getting-started.html | +| Manual configuration | https://sourcegraph.github.io/scip-java/docs/manual-configuration.html | +| Contributing | https://sourcegraph.github.io/scip-java/docs/contributing.html | +| Design | https://sourcegraph.github.io/scip-java/docs/design.html | diff --git a/WORKSPACE b/WORKSPACE index 2b2d0418..18f83df7 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -1,4 +1,4 @@ -workspace(name = "lsif_java_tests") +workspace(name = "scip_java_tests") load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") ############## diff --git a/bin/lsif-java-docker-script.sh b/bin/scip-java-docker-script.sh similarity index 83% rename from bin/lsif-java-docker-script.sh rename to bin/scip-java-docker-script.sh index aabf5021..c4e9dc89 100755 --- a/bin/lsif-java-docker-script.sh +++ b/bin/scip-java-docker-script.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash -# Wrapper script for `lsif-java`, which automatically picks up the correct JVM +# Wrapper script for `scip-java`, which automatically picks up the correct JVM # version. It assumes that `coursier` is available on the `$PATH` and that the -# `lsif-java` binary is already installed at `/app/lsif-java/bin/lsif-java`. +# `scip-java` binary is already installed at `/app/scip-java/bin/scip-java`. set -eu JVM_VERSION="8" FILE="$PWD/lsif-java.json" @@ -22,4 +22,4 @@ if [ "$JVM_VERSION" = "17" ]; then export JAVA_OPTS="--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED" fi -/app/lsif-java/bin/lsif-java "$@" +/app/scip-java/bin/scip-java "$@" diff --git a/build.sbt b/build.sbt index af84e96b..238a2ccc 100644 --- a/build.sbt +++ b/build.sbt @@ -35,7 +35,7 @@ inThisBuild( semanticdbEnabled := true, semanticdbVersion := V.scalameta, organization := "com.sourcegraph", - homepage := Some(url("https://github.com/sourcegraph/lsif-java")), + homepage := Some(url("https://github.com/sourcegraph/scip-java")), dynverSeparator := "-", licenses := List("Apache-2.0" -> url("http://www.apache.org/licenses/LICENSE-2.0")), @@ -124,10 +124,10 @@ lazy val plugin = project ) .dependsOn(semanticdb) -lazy val lsif = project - .in(file("lsif-semanticdb")) +lazy val scip = project + .in(file("scip-semanticdb")) .settings( - moduleName := "lsif-semanticdb", + moduleName := "scip-semanticdb", javaToolchainVersion := "8", javaOnlySettings, libraryDependencies += @@ -139,10 +139,10 @@ lazy val lsif = project .dependsOn(semanticdb) lazy val cli = project - .in(file("lsif-java")) + .in(file("scip-java")) .settings( - moduleName := "lsif-java", - (Compile / mainClass) := Some("com.sourcegraph.lsif_java.LsifJava"), + moduleName := "scip-java", + (Compile / mainClass) := Some("com.sourcegraph.scip_java.ScipJava"), (run / baseDirectory) := (ThisBuild / baseDirectory).value, buildInfoKeys := Seq[BuildInfoKey]( @@ -168,7 +168,7 @@ lazy val cli = project "bloopVersion" -> V.bloop, "bspVersion" -> V.bsp ), - buildInfoPackage := "com.sourcegraph.lsif_java", + buildInfoPackage := "com.sourcegraph.scip_java", libraryDependencies ++= List( "io.get-coursier" %% "coursier" % V.coursier, @@ -200,26 +200,26 @@ lazy val cli = project IO.copy(outs) val props = new Properties() - val propsFile = out.resolve("lsif-java.properties").toFile + val propsFile = out.resolve("scip-java.properties").toFile val copiedJars = outs.collect { case (_, out) => out } val names = copiedJars.map(_.getName).mkString(";") props.put("jarNames", names) - IO.write(props, "lsif-java", propsFile) + IO.write(props, "scip-java", propsFile) propsFile :: copiedJars.toList } .taskValue, docker / imageNames := List( - ImageName("sourcegraph/lsif-java:latest"), - ImageName(s"sourcegraph/lsif-java:${version.value}") + ImageName("sourcegraph/scip-java:latest"), + ImageName(s"sourcegraph/scip-java:${version.value}") ), docker / dockerfile := { val binaryDistribution = pack.value val script = (ThisBuild / baseDirectory).value / "bin" / - "lsif-java-docker-script.sh" + "scip-java-docker-script.sh" new Dockerfile { from("gradle:7.2.0-jdk8") @@ -248,14 +248,14 @@ lazy val cli = project "https://github.com/coursier/jvm-index/blob/master/index.json" ) - // Install `lsif-java` binary. - add(script, "/usr/local/bin/lsif-java") - add(binaryDistribution, "/app/lsif-java") + // Install `scip-java` binary. + add(script, "/usr/local/bin/scip-java") + add(binaryDistribution, "/app/scip-java") } } ) .enablePlugins(PackPlugin, DockerPlugin, BuildInfoPlugin) - .dependsOn(lsif) + .dependsOn(scip) def commitAll(): Unit = { import scala.sys.process._ @@ -273,7 +273,7 @@ commands += Command.command("nativeImageProfiled") { s => val targetroot = file("tests/minimized/.j11/target/scala-2.13/meta").absolutePath - val output = Files.createTempFile("lsif-java", "dump.lsif") + val output = Files.createTempFile("scip-java", "index.scip") "minimized/compile" :: s"""nativeImageRunAgent " index-semanticdb --output=$output $targetroot"""" :: "nativeImage" :: s @@ -403,7 +403,7 @@ lazy val snapshots = project lazy val bench = project .in(file("tests/benchmarks")) .settings( - moduleName := "lsif-java-bench", + moduleName := "scip-java-bench", (run / fork) := true, (publish / skip) := true ) @@ -411,9 +411,9 @@ lazy val bench = project .enablePlugins(JmhPlugin) lazy val docs = project - .in(file("lsif-java-docs")) + .in(file("scip-java-docs")) .settings( - moduleName := "lsif-java-docs", + moduleName := "scip-java-docs", mdocOut := (ThisBuild / baseDirectory).value / "website" / "target" / "docs", fork := false, diff --git a/docs/benchmarks.md b/docs/benchmarks.md index 6911614d..adf6cdfb 100644 --- a/docs/benchmarks.md +++ b/docs/benchmarks.md @@ -25,4 +25,4 @@ sbt:root> bench/jmh:run -i 10 -wi 10 -f1 -t1 compilation by 45-50%. - Recommendation: do not enable the SemanticDB compiler plugin during local edit-and-test workflows. The compiler plugin is primarily intended to be - enabled in custom CI jobs to upload LSIF indexes. + enabled in custom CI jobs to upload SCIP indexes. diff --git a/docs/contributing.md b/docs/contributing.md index 067f15b5..99228264 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -5,7 +5,7 @@ title: Contributing guide --- This page documents tips and tricks for contributing to the -[sourcegraph/lsif-java](https://github.com/sourcegraph/lsif-java) codebase. +[sourcegraph/scip-java](https://github.com/sourcegraph/scip-java) codebase. ## System dependencies @@ -29,7 +29,7 @@ These are the main components of the project. - `tests/snapshots`: slow running ["snapshot tests"](https://jestjs.io/docs/en/snapshot-testing) that index a corpus of published Java libraries. -- `cli/src/main/scala`: implementation of the `lsif-java` command-line +- `cli/src/main/scala`: implementation of the `scip-java` command-line interface. - `build.sbt`: the sbt build definition. - `project/plugins.sbt`: plugins for the sbt build. @@ -47,8 +47,8 @@ These are the main components of the project. | `snapshots/testOnly tests.LibrarySnapshotSuite` | sbt | Runs slow snapshot tests. Indexes a corpus of external Java libraries. | | `snapshots/test` | sbt | Runs all snapshot tests. | | `snapshots/run` | sbt | Update snapshot tests. Use this command after you have fixed a bug. | -| `cli/run --cwd DIRECTORY` | sbt | Run `lsif-java` command-line tool against a given Gradle/Maven build. | -| `cd website && yarn install && yarn start` | terminal | Start live-reload preview of the website at http://localhost:3000/lsif-java. | +| `cli/run --cwd DIRECTORY` | sbt | Run `scip-java` command-line tool against a given Gradle/Maven build. | +| `cd website && yarn install && yarn start` | terminal | Start live-reload preview of the website at http://localhost:3000/scip-java. | | `docs/mdoc --watch` | sbt | Re-generate markdown files in the `docs/` directory. | | `fixAll` | sbt | Run Scalafmt, Scalafix and Javafmt on all sources. Run this before opening a PR. | @@ -81,7 +81,7 @@ It's best to run tests from the sbt shell, not from the IntelliJ UI. If you want to use completions and precise code navigation, it's not recommended to use other editors than IntelliJ. IntelliJ is the only IDE that properly supports hybrid Java/Scala codebases at the moment, although that may change -soon thanks to lsif-java :) +soon thanks to scip-java :) ## Tests are written in Scala @@ -95,4 +95,4 @@ write tests because: - Multiline literal strings in Scala make it easy to write unit tests for source code (which is always multiline). Modern versions of Java support multiline string literals, but they're not supported in Java 8, which is supported by - lsif-java. + scip-java. diff --git a/docs/design.md b/docs/design.md index d908e78d..eca1f469 100644 --- a/docs/design.md +++ b/docs/design.md @@ -8,19 +8,19 @@ This project is implemented as a that generates one [SemanticDB](https://scalameta.org/docs/semanticdb/specification.html) file for every `*.java` source file. After compilation completes, the SemanticDB files -are processed to produce LSIF. +are processed to produce SCIP. -![A three stage pipeline that starts with a list of Java sources, creates a list of SemanticDB files that then become a single LSIF index.](assets/semanticdb-javac-pipeline.svg) +![A three stage pipeline that starts with a list of Java sources, creates a list of SemanticDB files that then become a single SCIP index.](assets/semanticdb-javac-pipeline.svg) ### Why Java compiler plugin? -There are several benefits to implementing lsif-java as a compiler plugin: +There are several benefits to implementing scip-java as a compiler plugin: - **Simple installation**: compiler plugins are enabled with the `-Xplugin` compiler option. All Java build tools support a way to customize compiler options, simplifying installation. - **Language fidelity**: by using the Java compiler to produce semantic - information, we ensure that the produced LSIF data is accurate even as new + information, we ensure that the produced SCIP data is accurate even as new Java language versions with new language features are released. - **Environment fidelity**: by hooking into the compilation process of the build tool, we minimize the risk of diverging from the CI build environment such as @@ -31,16 +31,16 @@ There are several benefits to implementing lsif-java as a compiler plugin: SemanticDB is Protobuf schema for information about symbols and types in Java programs, Scala programs and other languages. There are several benefits to -using SemanticDB as an intermediary representation for LSIF: +using SemanticDB as an intermediary representation for SCIP: - **Simplicity**: It's easy to translate a single Java source file into a single SemanticDB file inside a compiler plugin. It's more complicated to produce - LSIF because compiler plugins does not have access to a project-wide context, + SCIP because compiler plugins does not have access to a project-wide context, which is necessary to produce accurate definitions and hovers in multi-module projects with external library dependencies. - **Performance**: SemanticDB is fast to write and read. Each compilation unit can be processed independently to keep memory usage low. The final conversion - from SemanticDB to LSIF can be safely parallelized. + from SemanticDB to SCIP can be safely parallelized. - **Cross-language**: SemanticDB has a [spec](https://scalameta.org/docs/semanticdb/specification.html) for Java and Scala enabling cross-language navigation in hybrid Java/Scala codebases. @@ -50,5 +50,5 @@ using SemanticDB as an intermediary representation for LSIF: the classpath alone (no source code) and from the syntax tree of an individual source file (no classpath). This flexibility allows the [Metals](https://scalameta.org/metals/) language server to index codebases - from a variety of different inputs, and will be helpful for lsif-java in the + from a variety of different inputs, and will be helpful for scip-java in the future to unblock cross-repository navigation. diff --git a/docs/getting-started.md b/docs/getting-started.md index d86142ca..09f00145 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -4,29 +4,29 @@ title: Getting started --- By following the instructions on this page, you should be able to generate an -[LSIF](https://microsoft.github.io/language-server-protocol/specifications/lsif/0.5.0/specification/) +[SCIP](https://microsoft.github.io/language-server-protocol/specifications/scip/0.5.0/specification/) index of your Java codebase using Gradle or Maven. See [Supported build tools](#supported-build-tools) for an overview of other build tools that we're planning to support in the future. -## Install `lsif-java` +## Install `scip-java` -The most common way to use `lsif-java` is to run it from CI to upload LSIF +The most common way to use `scip-java` is to run it from CI to upload SCIP indexes after merging a pull request. -The easiest way to install `lsif-java` is to use the Docker launcher. +The easiest way to install `scip-java` is to use the Docker launcher. ### Docker container -Run the `lsif-java index`command from the `sourcegraph/lsif-java` Docker +Run the `scip-java index`command from the `sourcegraph/scip-java` Docker container. ```sh -$ docker run -v $(pwd):/home/gradle sourcegraph/lsif-java:latest lsif-java index -$ src lsif upload # (optional) upload index to Sourcegraph +$ docker run -v $(pwd):/home/gradle sourcegraph/scip-java:latest scip-java index +$ src scip upload # (optional) upload index to Sourcegraph ``` -If everything went OK, a `dump.lsif` file should exist after the command has +If everything went OK, a `index.scip` file should exist after the command has finished indexing the project. > The Docker container is made available for convenience at the cost of @@ -34,7 +34,7 @@ finished indexing the project. > Docker container for better performance. The Docker container is a large > download because it includes multiple pre-installed Java versions (Java 8, > Java 11 and Java 17). Also, external dependencies of your codebase get -> re-downloaded on every `lsif-java index` invocation. +> re-downloaded on every `scip-java index` invocation. Java 8 is the Java version in the Docker container. Use the following commands to change the default version: @@ -55,29 +55,29 @@ with the following values: ### Java launcher -Use the `lsif-java` launcher if you can install software from the internet in +Use the `scip-java` launcher if you can install software from the internet in your CI. Use [Coursier](https://get-coursier.io/docs/cli-installation.html) to launch the -`lsif-java` Java binary. The jar files for `lsif-java` are downloaded the first +`scip-java` Java binary. The jar files for `scip-java` are downloaded the first time you run the `launch` command, and they are cached for subsequent runs. -Copy-paste the steps below into your CI workflow to launch `lsif-java`. +Copy-paste the steps below into your CI workflow to launch `scip-java`. ```sh # macOS/Linux curl -fLo coursier https://git.io/coursier-cli \ && chmod +x coursier \ - && ./coursier launch com.sourcegraph:lsif-java_2.13:@STABLE_VERSION@ -- --help + && ./coursier launch com.sourcegraph:scip-java_2.13:@STABLE_VERSION@ -- --help # Windows bitsadmin /transfer downloadCoursierCli https://git.io/coursier-cli "%cd%\coursier" bitsadmin /transfer downloadCoursierBat https://git.io/coursier-bat "%cd%\coursier.bat" -./coursier launch com.sourcegraph:lsif-java_2.13:@STABLE_VERSION@ -- --help +./coursier launch com.sourcegraph:scip-java_2.13:@STABLE_VERSION@ -- --help # Homebrew brew install coursier/formulas/coursier \ - && coursier launch com.sourcegraph:lsif-java_2.13:@STABLE_VERSION@ -- --help + && coursier launch com.sourcegraph:scip-java_2.13:@STABLE_VERSION@ -- --help ``` Additional command-line flags can be passed after the `--` argument. For @@ -86,7 +86,7 @@ subcommand. ### Java fat jar -Use the `lsif-java` fat jar if your CI does not allow downloading binaries from +Use the `scip-java` fat jar if your CI does not allow downloading binaries from the internet. Use the [Coursier](https://get-coursier.io/docs/cli-installation) `bootstrap` @@ -99,28 +99,28 @@ CI machine. # macOS/Linux curl -fLo coursier https://git.io/coursier-cli \ && chmod +x coursier \ - && ./coursier bootstrap --standalone -o lsif-java com.sourcegraph:lsif-java_2.13:@STABLE_VERSION@ -./lsif-java --help + && ./coursier bootstrap --standalone -o scip-java com.sourcegraph:scip-java_2.13:@STABLE_VERSION@ +./scip-java --help # Windows bitsadmin /transfer downloadCoursierCli https://git.io/coursier-cli "%cd%\coursier" bitsadmin /transfer downloadCoursierBat https://git.io/coursier-bat "%cd%\coursier.bat" -./coursier bootstrap --standalone -o lsif-java com.sourcegraph:lsif-java_2.13:@STABLE_VERSION@ -./lsif-java --help +./coursier bootstrap --standalone -o scip-java com.sourcegraph:scip-java_2.13:@STABLE_VERSION@ +./scip-java --help ``` ### Java library -The `lsif-java` command-line interface is published to Maven Central. You can +The `scip-java` command-line interface is published to Maven Central. You can run the command-line interface as a library by directly invoking the `main()` -method on the `com.sourcegraph.lsif_java.LsifJava` class. +method on the `com.sourcegraph.scip_java.ScipJava` class. -[![](https://img.shields.io/maven-central/v/com.sourcegraph/lsif-java_2.13)](https://repo1.maven.org/maven2/com/sourcegraph/lsif-java_2.13/) +[![](https://img.shields.io/maven-central/v/com.sourcegraph/scip-java_2.13)](https://repo1.maven.org/maven2/com/sourcegraph/scip-java_2.13/) If you're using Gradle. ```groovy -implementation group: 'com.sourcegraph', name: 'lsif-java_2.13', version: '@STABLE_VERSION@' +implementation group: 'com.sourcegraph', name: 'scip-java_2.13', version: '@STABLE_VERSION@' ``` If you're using Maven. @@ -128,7 +128,7 @@ If you're using Maven. ```xml com.sourcegraph - lsif-java_2.13 + scip-java_2.13 @STABLE_VERSION@ ``` @@ -137,37 +137,37 @@ If you're using sbt. ```scala scalaVersion := "@SCALA_VERSION@" // Only Scala 2.13 is supported. -libraryDependencies += "com.sourcegraph" %% "lsif-java" % "@STABLE_VERSION@" +libraryDependencies += "com.sourcegraph" %% "scip-java" % "@STABLE_VERSION@" ``` -## Run `lsif-java index` +## Run `scip-java index` > The `index` command is only supported for Gradle, Maven and sbt. See > [Supported build tools](#supported-build-tools) for more details about other > build tools. -Run the `lsif-java index` command to generate an LSIF index for your codebase. +Run the `scip-java index` command to generate an SCIP index for your codebase. This command should automatically infer the structure of your codebase and -configure your build tool to generate LSIF. +configure your build tool to generate SCIP. ```sh # At the root of a Gradle, Maven or sbt codebase. -$ lsif-java index +$ scip-java index ... -info: /path/to/dump.lsif +info: /path/to/index.scip ``` -The `dump.lsif` file contains the LSIF index and is ready to be used. +The `index.scip` file contains the SCIP index and is ready to be used. -> Running `lsif-java index` may perform side-effects on your build like cleaning +> Running `scip-java index` may perform side-effects on your build like cleaning > the compile cache before indexing. This is done to make sure that all source > files in the codebase get indexed. -Run `lsif-java index --help` to learn more about the available command-line +Run `scip-java index --help` to learn more about the available command-line options. ```scala mdoc:passthrough -com.sourcegraph.lsif_java.LsifJava.printHelp(Console.out) +com.sourcegraph.scip_java.ScipJava.printHelp(Console.out) ``` ## Supported programming languages @@ -175,14 +175,14 @@ com.sourcegraph.lsif_java.LsifJava.printHelp(Console.out) | Programming language | Gradle | Maven | sbt | Tracking issue | | -------------------- | ------ | ----- | --- | ----------------------------------------------------------- | | Java | ✅ | ✅ | ✅ | | -| Scala | ✅ | ❌ | ✅ | [#302](https://github.com/sourcegraph/lsif-java/issues/302) | -| Kotlin | ✅ | ❌ | n/a | [#304](https://github.com/sourcegraph/lsif-java/issues/304) | +| Scala | ✅ | ❌ | ✅ | [#302](https://github.com/sourcegraph/scip-java/issues/302) | +| Kotlin | ✅ | ❌ | n/a | [#304](https://github.com/sourcegraph/scip-java/issues/304) | ### Java -The `lsif-java` indexer is implemented as a Java compiler plugin that runs as +The `scip-java` indexer is implemented as a Java compiler plugin that runs as part of your regular compilation in the build tool. By using Java compiler APIs, -`lsif-java` is able to generate accurate indexing information for a broad range +`scip-java` is able to generate accurate indexing information for a broad range of Java versions. | Java version | Support | Tracking issue | @@ -219,15 +219,15 @@ by [Metals](https://scalameta.org/metals), the Scala language server. ### Kotlin -The Kotlin support in lsif-java is the least mature compared to the Java and +The Kotlin support in scip-java is the least mature compared to the Java and Scala support. Don't hesitate to report issues at -https://github.com/sourcegraph/lsif-kotlin if you encounter issues using the +https://github.com/sourcegraph/scip-kotlin if you encounter issues using the Kotlin support. ## Supported build tools -It's possible to use lsif-java with any Java build tool. Some build tools can be -automatically configured by the `lsif-java index` command while other build +It's possible to use scip-java with any Java build tool. Some build tools can be +automatically configured by the `scip-java index` command while other build tools may require [manual configuration](manual-configuration.md). ### Automatic configuration @@ -240,28 +240,28 @@ free to subscribe to the tracking issues to receive updates on your build tool. | Maven | ✅ | ❌ | ❌ | | | Gradle | ✅ | ✅ | ✅ | | | sbt | ✅ | ✅ | n/a | | -| Ant | ❌ | ❌ | ❌ | [sourcegraph/lsif-java#305](https://github.com/sourcegraph/lsif-java/issues/305) | -| Bazel | ❌ | ❌ | ❌ | [sourcegraph/lsif-java#88](https://github.com/sourcegraph/lsif-java/issues/88) | -| Buck | ❌ | ❌ | ❌ | [sourcegraph/lsif-java#99](https://github.com/sourcegraph/lsif-java/issues/99) | -| Mill | ❌ | ❌ | ❌ | [sourcegraph/lsif-java#306](https://github.com/sourcegraph/lsif-java/issues/306) | +| Ant | ❌ | ❌ | ❌ | [sourcegraph/scip-java#305](https://github.com/sourcegraph/scip-java/issues/305) | +| Bazel | ❌ | ❌ | ❌ | [sourcegraph/scip-java#88](https://github.com/sourcegraph/scip-java/issues/88) | +| Buck | ❌ | ❌ | ❌ | [sourcegraph/scip-java#99](https://github.com/sourcegraph/scip-java/issues/99) | +| Mill | ❌ | ❌ | ❌ | [sourcegraph/scip-java#306](https://github.com/sourcegraph/scip-java/issues/306) | **✅**: automatic indexing is fully supported. Please report a bug if the -`lsif-java index` command does not work on your codebase. +`scip-java index` command does not work on your codebase. **❌**: automatic indexing is not supported but (!) you may still be able to use -`lsif-java` by configuring it manually using the instructions +`scip-java` by configuring it manually using the instructions [here](manual-configuration.md). ### Manual configuration See the [manual configuration](manual-configuration.md) guide for instructions -on how to configure lsif-java to work with any build tool. +on how to configure scip-java to work with any build tool. ### Gradle -The `lsif-java index` build should be able to automatically index most Gradle +The `scip-java index` build should be able to automatically index most Gradle projects. You Gradle build must contain one of the following files in the same -directory where `lsif-java index` gets invoked. +directory where `scip-java index` gets invoked. - settings.gradle - gradlew @@ -272,27 +272,27 @@ The following Gradle integrations are not yet supported: | Integration | Supported | Tracking issue | | ----------- | --------- | -------------------------------------------------------------------------------- | -| Android | ❌ | [sourcegraph/lsif-java#177](https://github.com/sourcegraph/lsif-java/issues/177) | +| Android | ❌ | [sourcegraph/scip-java#177](https://github.com/sourcegraph/scip-java/issues/177) | | Kotlin | ✅ | | | Scala | ✅ | | ### Maven -The `lsif-java index` build should be able to automatically index most Maven +The `scip-java index` build should be able to automatically index most Maven projects. Your Maven build must contain a `pom.xml` file in the same directory -where `lsif-java index` gets invoked. +where `scip-java index` gets invoked. The following Maven integrations are not yet supported: | Integration | Supported | Tracking issue | | ------------------- | --------- | -------------------------------------------------------------------------------- | -| scala-maven-plugin | ❌ | [sourcegraph/lsif-java#301](https://github.com/sourcegraph/lsif-java/issues/301) | -| scalor-maven-plugin | ❌ | [sourcegraph/lsif-java#301](https://github.com/sourcegraph/lsif-java/issues/301) | -| kotlin-maven-plugin | ❌ | [sourcegraph/lsif-java#304](https://github.com/sourcegraph/lsif-java/issues/304) | +| scala-maven-plugin | ❌ | [sourcegraph/scip-java#301](https://github.com/sourcegraph/scip-java/issues/301) | +| scalor-maven-plugin | ❌ | [sourcegraph/scip-java#301](https://github.com/sourcegraph/scip-java/issues/301) | +| kotlin-maven-plugin | ❌ | [sourcegraph/scip-java#304](https://github.com/sourcegraph/scip-java/issues/304) | ### sbt -The `lsif-java index` build should be able to automatically index most Maven +The `scip-java index` build should be able to automatically index most Maven projects, with the following caveats: | Integration | Supported | Recommendation | diff --git a/docs/manual-configuration.md b/docs/manual-configuration.md index 97eb296d..a9161608 100644 --- a/docs/manual-configuration.md +++ b/docs/manual-configuration.md @@ -3,9 +3,9 @@ id: manual-configuration title: Manual configuration --- -The `lsif-java index` command does a best-effort to automatically index a given +The `scip-java index` command does a best-effort to automatically index a given codebase. The automatic step may not always work. The purpose of this page is to -document the steps to manually configure lsif-java when automatic indexing +document the steps to manually configure scip-java when automatic indexing fails. ## Overview @@ -13,9 +13,9 @@ fails. Indexing a codebase consists of two independent phases: - Compile the codebase with the SemanticDB compiler plugin. -- Generate LSIF index from SemanticDB files. +- Generate SCIP index from SemanticDB files. -![A three stage pipeline that starts with a list of Java sources, creates a list of SemanticDB files that then become a single LSIF index.](assets/semanticdb-javac-pipeline.svg) +![A three stage pipeline that starts with a list of Java sources, creates a list of SemanticDB files that then become a single SCIP index.](assets/semanticdb-javac-pipeline.svg) The first phase can be complicated to configure and it can take a while to run. The second phase is quite simple to configure and it usually runs very fast. @@ -140,23 +140,23 @@ build/semanticdb-targetroot/META-INF/semanticdb/j8/src/main/java/example/Example ... ``` -## Step 4: Generate LSIF index from SemanticDB files +## Step 4: Generate SCIP index from SemanticDB files -First, install the `lsif-java` command-line tool according to the instructions +First, install the `scip-java` command-line tool according to the instructions in the [getting started guide](getting-started.md). -Next, run the `lsif-java index-semanticdb` command to convert SemanticDB files -into LSIF. +Next, run the `scip-java index-semanticdb` command to convert SemanticDB files +into SCIP. ```sh -❯ lsif-java index-semanticdb $TARGETROOT -❯ file dump.lsif -dump.lsif: JSON data +❯ scip-java index-semanticdb $TARGETROOT +❯ file index.scip +index.scip: JSON data ``` ## Step 5 (optional): Enable cross-repository navigation -By default, the `dump.lsif` file only enables navigation within the local +By default, the `index.scip` file only enables navigation within the local repository. You can optionally enable cross-repository navigation by creating one of the following files in the SemanticDB _targetroot_ directory (the path in `-Xplugin:semanticdb -targeroot:PATH`). @@ -183,7 +183,7 @@ one of the following files in the SemanticDB _targetroot_ directory (the path in junit junit 4.13.2 /path/to/junit.jar org.hamcrest hamcrest-core 1.3 /path/to/hamcrest-core.jar ``` - The `dependencies.txt` format is used by lsif-java to map symbols such as + The `dependencies.txt` format is used by scip-java to map symbols such as `org.junit.Assert` to Maven co-ordinates like `junit:junit:4.13.2`. As long as your Sourcegraph instance has another repository that defines that symbol, the cross-repository navigation should succeed. Only jar files are supported at diff --git a/examples/bazel-example/WORKSPACE b/examples/bazel-example/WORKSPACE index 60542b42..07505025 100644 --- a/examples/bazel-example/WORKSPACE +++ b/examples/bazel-example/WORKSPACE @@ -1,6 +1,5 @@ - -# This is an end-to-end example of how to consume lsif-java from an external repository. -workspace(name = "lsif_java_example") +# This is an end-to-end example of how to consume scip-java from an external repository. +workspace(name = "scip_java_example") load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") ############## @@ -17,10 +16,10 @@ http_archive( ) ############## -# lsif-java +# scip-java ############## local_repository( - name = "lsif_java", + name = "scip_java", path = "../.." ) # TODO: add commented out `http_archive` example once this workspace file is available on GitHub. @@ -60,8 +59,8 @@ rules_jvm_external_setup() load("@rules_jvm_external//:defs.bzl", "maven_install") maven_install( artifacts = [ - "com.google.protobuf:protobuf-java:3.15.6", # Required dependency by lsif-java. - "com.google.protobuf:protobuf-java-util:3.15.6", # Required dependency by lsif-java. + "com.google.protobuf:protobuf-java:3.15.6", # Required dependency by scip-java. + "com.google.protobuf:protobuf-java-util:3.15.6", # Required dependency by scip-java. "com.google.guava:guava:31.0-jre", # Not required dependency, only used by tests. ], repositories = [ diff --git a/examples/bazel-example/src/main/java/example/BUILD b/examples/bazel-example/src/main/java/example/BUILD index c6c3898e..50641093 100644 --- a/examples/bazel-example/src/main/java/example/BUILD +++ b/examples/bazel-example/src/main/java/example/BUILD @@ -1,10 +1,10 @@ # We import the custom `java_library` implementation that automatically adds the # SemanticDB compiler plugin based on the presence of the flag -# `--@lsif_java//semanticdb-javac:enabled=true`. By default, this java_library +# `--@scip_java//semanticdb-javac:enabled=true`. By default, this java_library # rule works just like the official java_library rule. Feel free to copy-paste # the `semanticdb:defs.bzl` file and adapt to your needs. This example is only # for demonstration purposes. -load("@lsif_java//semanticdb-javac:defs.bzl", "java_library") +load("@scip_java//semanticdb-javac:defs.bzl", "java_library") package( default_visibility = ["//visibility:public"], diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifProcessingException.java b/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifProcessingException.java deleted file mode 100644 index 3477146d..00000000 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifProcessingException.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.sourcegraph.lsif_semanticdb; - -public class LsifProcessingException extends Throwable { - - public LsifProcessingException(LsifTextDocument doc, Throwable cause) { - super(doc.semanticdbPath.toString(), cause); - } - - @Override - public Throwable fillInStackTrace() { - return this; - } -} diff --git a/lsif-java/src/main/resources/lsif-java/coursier b/scip-java/src/main/resources/scip-java/coursier similarity index 100% rename from lsif-java/src/main/resources/lsif-java/coursier rename to scip-java/src/main/resources/scip-java/coursier diff --git a/lsif-java/src/main/scala/com/sourcegraph/io/AbsolutePath.scala b/scip-java/src/main/scala/com/sourcegraph/io/AbsolutePath.scala similarity index 100% rename from lsif-java/src/main/scala/com/sourcegraph/io/AbsolutePath.scala rename to scip-java/src/main/scala/com/sourcegraph/io/AbsolutePath.scala diff --git a/lsif-java/src/main/scala/com/sourcegraph/io/AutoDeletedFile.scala b/scip-java/src/main/scala/com/sourcegraph/io/AutoDeletedFile.scala similarity index 100% rename from lsif-java/src/main/scala/com/sourcegraph/io/AutoDeletedFile.scala rename to scip-java/src/main/scala/com/sourcegraph/io/AutoDeletedFile.scala diff --git a/lsif-java/src/main/scala/com/sourcegraph/io/DeleteVisitor.scala b/scip-java/src/main/scala/com/sourcegraph/io/DeleteVisitor.scala similarity index 100% rename from lsif-java/src/main/scala/com/sourcegraph/io/DeleteVisitor.scala rename to scip-java/src/main/scala/com/sourcegraph/io/DeleteVisitor.scala diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/Dependencies.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/Dependencies.scala similarity index 99% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_java/Dependencies.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_java/Dependencies.scala index fc8c915f..2d662908 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/Dependencies.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/Dependencies.scala @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_java +package com.sourcegraph.scip_java import java.io.File import java.nio.file.Path diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/Embedded.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/Embedded.scala similarity index 97% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_java/Embedded.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_java/Embedded.scala index 0d63539c..3aa44d93 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/Embedded.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/Embedded.scala @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_java +package com.sourcegraph.scip_java import java.nio.charset.StandardCharsets import java.nio.file.Files @@ -15,7 +15,7 @@ object Embedded { def agentJar(tmpDir: Path): Path = copyFile(tmpDir, "semanticdb-agent.jar") def coursier(tmpDir: Path): Path = { - val result = copyFile(tmpDir, "lsif-java/coursier") + val result = copyFile(tmpDir, "scip-java/coursier") result.toFile().setExecutable(true) result } diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/LsifJava.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/ScipJava.scala similarity index 67% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_java/LsifJava.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_java/ScipJava.scala index b7895db0..92b1d111 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/LsifJava.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/ScipJava.scala @@ -1,21 +1,21 @@ -package com.sourcegraph.lsif_java +package com.sourcegraph.scip_java import java.io.PrintStream -import com.sourcegraph.lsif_java.commands.IndexCommand -import com.sourcegraph.lsif_java.commands.IndexDependencyCommand -import com.sourcegraph.lsif_java.commands.IndexSemanticdbCommand -import com.sourcegraph.lsif_java.commands.SnapshotCommand -import com.sourcegraph.lsif_java.commands.SnapshotLsifCommand +import com.sourcegraph.scip_java.commands.IndexCommand +import com.sourcegraph.scip_java.commands.IndexDependencyCommand +import com.sourcegraph.scip_java.commands.IndexSemanticdbCommand +import com.sourcegraph.scip_java.commands.SnapshotCommand +import com.sourcegraph.scip_java.commands.SnapshotLsifCommand import moped.cli.Application import moped.cli.CommandParser import moped.commands.HelpCommand import moped.commands.VersionCommand import moped.reporters.Tput -object LsifJava { +object ScipJava { val app: Application = Application.fromName( - binaryName = "lsif-java", + binaryName = "scip-java", BuildInfo.version, List( CommandParser[HelpCommand], @@ -33,7 +33,7 @@ object LsifJava { def printHelp(out: PrintStream): Unit = { out.println("```text") - out.println("$ lsif-java index --help") + out.println("$ scip-java index --help") val newApp = app .withTput(Tput.constant(100)) .withEnv(app.env.withStandardOutput(out)) diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/SemanticdbPrinters.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/SemanticdbPrinters.scala similarity index 86% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_java/SemanticdbPrinters.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_java/SemanticdbPrinters.scala index 9d3347e8..19fef753 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/SemanticdbPrinters.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/SemanticdbPrinters.scala @@ -1,13 +1,13 @@ -package com.sourcegraph.lsif_java +package com.sourcegraph.scip_java import scala.jdk.CollectionConverters._ -import com.sourcegraph.lsif_java.commands.CommentSyntax -import com.sourcegraph.lsif_java.commands.SnapshotLsifCommand -import com.sourcegraph.lsif_semanticdb.LsifSemanticdb -import com.sourcegraph.lsif_semanticdb.LsifTextDocument -import com.sourcegraph.lsif_semanticdb.SignatureFormatter -import com.sourcegraph.lsif_semanticdb.Symtab +import com.sourcegraph.scip_java.commands.CommentSyntax +import com.sourcegraph.scip_java.commands.SnapshotLsifCommand +import com.sourcegraph.scip_semanticdb.ScipSemanticdb +import com.sourcegraph.scip_semanticdb.ScipTextDocument +import com.sourcegraph.scip_semanticdb.SignatureFormatter +import com.sourcegraph.scip_semanticdb.Symtab import com.sourcegraph.semanticdb_javac.Semanticdb.SymbolOccurrence import com.sourcegraph.semanticdb_javac.Semanticdb.TextDocument @@ -16,7 +16,7 @@ object SemanticdbPrinters { doc: TextDocument, comments: CommentSyntax = CommentSyntax.default ): String = { - val occurrencesByLine = LsifTextDocument + val occurrencesByLine = ScipTextDocument .sortedSymbolOccurrences(doc) .asScala .groupBy(_.getRange.getStartLine) @@ -88,7 +88,7 @@ object SemanticdbPrinters { ) .append( symtab.symbols.asScala.get(occ.getSymbol) match { - case Some(info) if LsifSemanticdb.isDefinitionRole(occ.getRole) => + case Some(info) if ScipSemanticdb.isDefinitionRole(occ.getRole) => val signature: String = if (info.hasSignature) { new SignatureFormatter(info, symtab) diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/BuildTool.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/BuildTool.scala similarity index 83% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/BuildTool.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/BuildTool.scala index 15d1328d..61b0726e 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/BuildTool.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/BuildTool.scala @@ -1,10 +1,10 @@ -package com.sourcegraph.lsif_java.buildtools +package com.sourcegraph.scip_java.buildtools import java.nio.file.Files import java.nio.file.Path -import com.sourcegraph.lsif_java.commands.IndexCommand -import com.sourcegraph.lsif_java.commands.IndexSemanticdbCommand +import com.sourcegraph.scip_java.commands.IndexCommand +import com.sourcegraph.scip_java.commands.IndexSemanticdbCommand import os.CommandResult /** @@ -14,7 +14,7 @@ abstract class BuildTool(val name: String, index: IndexCommand) { def isHidden: Boolean = false final def sourceroot: Path = index.workingDirectory def usedInCurrentDirectory(): Boolean - def generateLsif(): Int + def generateScip(): Int } object BuildTool { @@ -22,13 +22,13 @@ object BuildTool { List( new GradleBuildTool(index), new MavenBuildTool(index), - new LsifBuildTool(index), + new ScipBuildTool(index), new SbtBuildTool(index) ) def allNames: String = all(IndexCommand()).filterNot(_.isHidden).map(_.name).mkString(", ") - def generateLsifFromTargetroot( + def generateScipFromTargetroot( generateSemanticdbResult: CommandResult, targetroot: Path, index: IndexCommand, diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/ClasspathEntry.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/ClasspathEntry.scala similarity index 96% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/ClasspathEntry.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/ClasspathEntry.scala index a5aa4a0b..3faeb4fc 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/ClasspathEntry.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/ClasspathEntry.scala @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_java.buildtools +package com.sourcegraph.scip_java.buildtools import java.io.File import java.nio.charset.StandardCharsets @@ -8,10 +8,10 @@ import java.nio.file.Paths import scala.jdk.CollectionConverters._ -import com.sourcegraph.lsif_semanticdb.MavenPackage +import com.sourcegraph.scip_semanticdb.MavenPackage /** - * Represents a single jar file on the classpath of a project, used to emit LSIF + * Represents a single jar file on the classpath of a project, used to emit SCIP * "packageInformation" nodes. */ case class ClasspathEntry( diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/GradleBuildTool.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/GradleBuildTool.scala similarity index 93% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/GradleBuildTool.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/GradleBuildTool.scala index 70783926..0477b391 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/GradleBuildTool.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/GradleBuildTool.scala @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_java.buildtools +package com.sourcegraph.scip_java.buildtools import java.nio.charset.StandardCharsets import java.nio.file._ @@ -7,9 +7,9 @@ import scala.collection.mutable.ListBuffer import scala.util.Properties import com.sourcegraph.io.DeleteVisitor -import com.sourcegraph.lsif_java.BuildInfo -import com.sourcegraph.lsif_java.Embedded -import com.sourcegraph.lsif_java.commands.IndexCommand +import com.sourcegraph.scip_java.BuildInfo +import com.sourcegraph.scip_java.Embedded +import com.sourcegraph.scip_java.commands.IndexCommand import os.CommandResult class GradleBuildTool(index: IndexCommand) extends BuildTool("Gradle", index) { @@ -21,9 +21,9 @@ class GradleBuildTool(index: IndexCommand) extends BuildTool("Gradle", index) { Files.isRegularFile(index.workingDirectory.resolve("build.gradle.kts")) } - override def generateLsif(): Int = { + override def generateScip(): Int = { BuildTool - .generateLsifFromTargetroot(generateSemanticdb(), targetroot, index) + .generateScipFromTargetroot(generateSemanticdb(), targetroot, index) } def targetroot: Path = index.finalTargetroot(defaultTargetroot) @@ -55,7 +55,7 @@ class GradleBuildTool(index: IndexCommand) extends BuildTool("Gradle", index) { index .app .error( - "lsif-java does not support Gradle 6.7 when used together with Java toolchains. " + + "scip-java does not support Gradle 6.7 when used together with Java toolchains. " + "To fix this problem, upgrade to Gradle version 6.8 or newer and try again." ) CommandResult(1, Nil) @@ -102,7 +102,7 @@ class GradleBuildTool(index: IndexCommand) extends BuildTool("Gradle", index) { None ).flatten ) - buildCommand += lsifJavaDependencies + buildCommand += scipJavaDependencies Files.walkFileTree(targetroot, new DeleteVisitor()) val result = index.process(buildCommand, env = Map("TERM" -> "dumb")) @@ -112,7 +112,7 @@ class GradleBuildTool(index: IndexCommand) extends BuildTool("Gradle", index) { .getOrElse(result) } - private def lsifJavaDependencies = "lsifJavaDependencies" + private def scipJavaDependencies = "scipJavaDependencies" private def printDebugLogs(tmp: Path): Unit = { val path = GradleJavaCompiler.debugPath(tmp) @@ -173,8 +173,8 @@ class GradleBuildTool(index: IndexCommand) extends BuildTool("Gradle", index) { | | if (scalaCompileOptions.additionalParameters == null) scalaCompileOptions.additionalParameters = [] | try { - | def scalaVersion = lsifJavaScalaVersion(project, configurations) - | def semanticdbVersion = lsifJavaSemanticdbScalacVersions(scalaVersion) + | def scalaVersion = scipJavaScalaVersion(project, configurations) + | def semanticdbVersion = scipJavaSemanticdbScalacVersions(scalaVersion) | def semanticdbScalacDependency ="org.scalameta:semanticdb-scalac_$$scalaVersion:$$semanticdbVersion" | def semanticdbScalac = project.configurations.detachedConfiguration(dependencies.create(semanticdbScalacDependency)).files[0] | scalaCompileOptions.additionalParameters << '-Xplugin:' + semanticdbScalac @@ -214,7 +214,7 @@ class GradleBuildTool(index: IndexCommand) extends BuildTool("Gradle", index) { | } | } | } - | task $lsifJavaDependencies { + | task $scipJavaDependencies { | def depsOut = java.nio.file.Paths.get( | java.net.URI.create('${dependenciesPath.toUri}')) | doLast { @@ -249,10 +249,10 @@ class GradleBuildTool(index: IndexCommand) extends BuildTool("Gradle", index) { | } | } |} - |def lsifJavaSemanticdbScalacVersions(scalaVersion) { + |def scipJavaSemanticdbScalacVersions(scalaVersion) { | ${semanticdbScalacGroovySyntax()}[scalaVersion] |} - |def lsifJavaScalaVersion(project, configurations) { + |def scipJavaScalaVersion(project, configurations) { | for (config in configurations) { | if (config.name == "zinc") continue | if (config.canBeResolved) { diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/GradleJavaCompiler.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/GradleJavaCompiler.scala similarity index 97% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/GradleJavaCompiler.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/GradleJavaCompiler.scala index 5e1f5a8a..3e34097c 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/GradleJavaCompiler.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/GradleJavaCompiler.scala @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_java.buildtools +package com.sourcegraph.scip_java.buildtools import java.nio.charset.StandardCharsets import java.nio.file.Files @@ -9,8 +9,8 @@ import java.nio.file.StandardCopyOption import scala.collection.mutable.ListBuffer -import com.sourcegraph.lsif_java.Embedded -import com.sourcegraph.lsif_java.commands.IndexCommand +import com.sourcegraph.scip_java.Embedded +import com.sourcegraph.scip_java.commands.IndexCommand /** * Metadata about the Java compiler that is used by a Gradle build. diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/GradleJavaToolchains.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/GradleJavaToolchains.scala similarity index 90% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/GradleJavaToolchains.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/GradleJavaToolchains.scala index ed16e7cd..3cf1ce09 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/GradleJavaToolchains.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/GradleJavaToolchains.scala @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_java.buildtools +package com.sourcegraph.scip_java.buildtools import java.nio.charset.StandardCharsets import java.nio.file.Files @@ -6,8 +6,8 @@ import java.nio.file.Path import scala.jdk.CollectionConverters._ -import com.sourcegraph.lsif_java.Embedded -import com.sourcegraph.lsif_java.commands.IndexCommand +import com.sourcegraph.scip_java.Embedded +import com.sourcegraph.scip_java.commands.IndexCommand case class GradleJavaToolchains( toolchains: List[GradleJavaCompiler], @@ -65,7 +65,7 @@ object GradleJavaToolchains { val kotlinMultiplatformEnabledPath = tmp .resolve("kotlin-multiplatform-enabled.txt") val gradleVersionPath = tmp.resolve("gradle-version.txt") - val taskName = "lsifDetectJavaToolchains" + val taskName = "scipDetectJavaToolchains" val script = s"""| |try { @@ -79,7 +79,7 @@ object GradleJavaToolchains { | // Ignore errors. |} | - |def lsifJavaAppendLine(path, line) { + |def scipJavaAppendLine(path, line) { | java.nio.file.Files.write( | java.nio.file.Paths.get(path), | [line], @@ -103,7 +103,7 @@ object GradleJavaToolchains { | [line], | java.nio.file.StandardOpenOption.APPEND, | java.nio.file.StandardOpenOption.CREATE) - | lsifJavaAppendLine(toolchainsOut, line) + | scipJavaAppendLine(toolchainsOut, line) | } | } catch (Exception e) { | // Ignore errors. @@ -111,13 +111,13 @@ object GradleJavaToolchains { | project.plugins.each { | def name = it.getClass().getName() | if (name.endsWith("org.gradle.api.plugins.JavaPlugin")) - | lsifJavaAppendLine('$javaEnabledPath', 'true') + | scipJavaAppendLine('$javaEnabledPath', 'true') | if (name.endsWith("org.gradle.api.plugins.scala.ScalaPlugin")) - | lsifJavaAppendLine('$scalaEnabledPath', 'true') + | scipJavaAppendLine('$scalaEnabledPath', 'true') | if (name.startsWith("org.jetbrains.kotlin.gradle.plugin")) - | lsifJavaAppendLine('$kotlinEnabledPath', 'true') + | scipJavaAppendLine('$kotlinEnabledPath', 'true') | if (name.equals("org.jetbrains.kotlin.gradle.plugin.KotlinMultiplatformPluginWrapper")) - | lsifJavaAppendLine('$kotlinMultiplatformEnabledPath', 'true') + | scipJavaAppendLine('$kotlinMultiplatformEnabledPath', 'true') | } | } | } diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/MavenBuildTool.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/MavenBuildTool.scala similarity index 90% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/MavenBuildTool.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/MavenBuildTool.scala index 5b039a7f..be3a5b06 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/MavenBuildTool.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/MavenBuildTool.scala @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_java.buildtools +package com.sourcegraph.scip_java.buildtools import java.nio.file.Files import java.nio.file.Path @@ -6,8 +6,8 @@ import java.nio.file.Paths import scala.collection.mutable.ListBuffer -import com.sourcegraph.lsif_java.Embedded -import com.sourcegraph.lsif_java.commands.IndexCommand +import com.sourcegraph.scip_java.Embedded +import com.sourcegraph.scip_java.commands.IndexCommand import os.CommandResult class MavenBuildTool(index: IndexCommand) extends BuildTool("Maven", index) { @@ -15,8 +15,8 @@ class MavenBuildTool(index: IndexCommand) extends BuildTool("Maven", index) { override def usedInCurrentDirectory(): Boolean = Files.isRegularFile(index.workingDirectory.resolve("pom.xml")) - override def generateLsif(): Int = { - BuildTool.generateLsifFromTargetroot( + override def generateScip(): Int = { + BuildTool.generateScipFromTargetroot( generateSemanticdb(), index.finalTargetroot(defaultTargetroot), index diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/SbtBuildTool.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/SbtBuildTool.scala similarity index 80% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/SbtBuildTool.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/SbtBuildTool.scala index f71f686b..8ac28d71 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/SbtBuildTool.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/SbtBuildTool.scala @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_java.buildtools +package com.sourcegraph.scip_java.buildtools import java.nio.file.Files import java.nio.file.StandardCopyOption @@ -7,8 +7,8 @@ import java.util.Properties import scala.util.Using import com.sourcegraph.io.AutoDeletedFile -import com.sourcegraph.lsif_java.BuildInfo -import com.sourcegraph.lsif_java.commands.IndexCommand +import com.sourcegraph.scip_java.BuildInfo +import com.sourcegraph.scip_java.commands.IndexCommand class SbtBuildTool(index: IndexCommand) extends BuildTool("sbt", index) { override def usedInCurrentDirectory(): Boolean = { @@ -16,11 +16,11 @@ class SbtBuildTool(index: IndexCommand) extends BuildTool("sbt", index) { sbtVersion().isDefined } - override def generateLsif(): Int = { + override def generateScip(): Int = { sbtVersion() match { case Some(version) => if (isSupportedSbtVersion(version)) { - unconditionallyGenerateLsif() + unconditionallyGenerateScip() } else { failFast( s"Unsupported sbt version '$version'. " + @@ -41,21 +41,21 @@ class SbtBuildTool(index: IndexCommand) extends BuildTool("sbt", index) { 1 } - private def unconditionallyGenerateLsif(): Int = + private def unconditionallyGenerateScip(): Int = Using.resource(sourcegraphSbtPluginFile()) { _ => - val sourcegraphLsif = index - .process(List("sbt", "sourcegraphEnable", "sourcegraphLsif")) + val sourcegraphScip = index + .process(List("sbt", "sourcegraphEnable", "sourcegraphScip")) val inputDump = index .workingDirectory .resolve("target") .resolve("sbt-sourcegraph") - .resolve("dump.lsif") - if (sourcegraphLsif.exitCode == 0 && Files.isRegularFile(inputDump)) { - val outputDump = index.workingDirectory.resolve("dump.lsif") + .resolve("index.scip") + if (sourcegraphScip.exitCode == 0 && Files.isRegularFile(inputDump)) { + val outputDump = index.workingDirectory.resolve("index.scip") Files.copy(inputDump, outputDump, StandardCopyOption.REPLACE_EXISTING) index.app.info(outputDump.toString) } - sourcegraphLsif.exitCode + sourcegraphScip.exitCode } private def isSupportedSbtVersion(version: String): Boolean = { diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/ScalaCompilerClassLoader.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/ScalaCompilerClassLoader.scala similarity index 84% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/ScalaCompilerClassLoader.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/ScalaCompilerClassLoader.scala index 3c269373..89c2118f 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/ScalaCompilerClassLoader.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/ScalaCompilerClassLoader.scala @@ -1,12 +1,12 @@ -package com.sourcegraph.lsif_java.buildtools +package com.sourcegraph.scip_java.buildtools // Copied from: https://github.com/scalameta/metals/blob/3c83447ec658f87fdccbfb3f0a39fca1cec4ef6e/metals/src/main/scala/scala/meta/internal/metals/PresentationCompilerClassLoader.scala /** * ClassLoader that is used to reflectively invoke the Scala compiler. * * The Scala compiler is compiled against the exact Scala versions of the - * compiler while lsif-java is only compiled with Scala 2.13. In order to - * communicate between lsif-java and multiple versions of the compiler, this + * compiler while scip-java is only compiled with Scala 2.13. In order to + * communicate between scip-java and multiple versions of the compiler, this * classloader shares a subset of Java classes that appear in method signatures * of the `scala.meta.pc.PresentationCompiler` class. */ diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/ScalaVersion.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/ScalaVersion.scala similarity index 95% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/ScalaVersion.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/ScalaVersion.scala index 578da46a..9f49c1cf 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/ScalaVersion.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/ScalaVersion.scala @@ -1,8 +1,8 @@ -package com.sourcegraph.lsif_java.buildtools +package com.sourcegraph.scip_java.buildtools import java.nio.file.Path -import com.sourcegraph.lsif_java.BuildInfo +import com.sourcegraph.scip_java.BuildInfo object ScalaVersion { diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/LsifBuildTool.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/ScipBuildTool.scala similarity index 93% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/LsifBuildTool.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/ScipBuildTool.scala index 2be52fb1..44e0518f 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/LsifBuildTool.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/ScipBuildTool.scala @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_java.buildtools +package com.sourcegraph.scip_java.buildtools import java.io.File import java.io.FileOutputStream @@ -32,10 +32,10 @@ import scala.meta.pc.PresentationCompiler import scala.meta.pc.PresentationCompilerConfig import com.sourcegraph.io.DeleteVisitor -import com.sourcegraph.lsif_java.BuildInfo -import com.sourcegraph.lsif_java.Dependencies -import com.sourcegraph.lsif_java.Embedded -import com.sourcegraph.lsif_java.commands.IndexCommand +import com.sourcegraph.scip_java.BuildInfo +import com.sourcegraph.scip_java.Dependencies +import com.sourcegraph.scip_java.Embedded +import com.sourcegraph.scip_java.commands.IndexCommand import com.sourcegraph.semanticdb_javac.Semanticdb.TextDocument import com.sourcegraph.semanticdb_javac.Semanticdb.TextDocuments import moped.json.DecodingContext @@ -62,9 +62,9 @@ import os.ProcessOutput.Readlines import os.SubprocessException /** - * A custom build tool that is specifically made for lsif-java. + * A custom build tool that is specifically made for scip-java. * - * The purpose of this build tool is to LSIF index the source code inside + * The purpose of this build tool is to SCIP index the source code inside * `*-sources.jar` files of Maven dependencies. Builds are written in a JSON * file with the following format: * @@ -75,7 +75,7 @@ import os.SubprocessException * } * }}} */ -class LsifBuildTool(index: IndexCommand) extends BuildTool("LSIF", index) { +class ScipBuildTool(index: IndexCommand) extends BuildTool("SCIP", index) { private val javaPattern = FileSystems .getDefault @@ -94,8 +94,8 @@ class LsifBuildTool(index: IndexCommand) extends BuildTool("LSIF", index) { override def usedInCurrentDirectory(): Boolean = Files.isRegularFile(configFile) override def isHidden: Boolean = true - override def generateLsif(): Int = { - BuildTool.generateLsifFromTargetroot( + override def generateScip(): Int = { + BuildTool.generateScipFromTargetroot( generateSemanticdb(), index.finalTargetroot(defaultTargetroot), index, @@ -106,7 +106,7 @@ class LsifBuildTool(index: IndexCommand) extends BuildTool("LSIF", index) { private def targetroot: Path = index.finalTargetroot(defaultTargetroot) private def defaultTargetroot: Path = Paths.get("target") private def configFile = - index.workingDirectory.resolve(LsifBuildTool.ConfigFileName) + index.workingDirectory.resolve(ScipBuildTool.ConfigFileName) private def buildKind: String = parsedConfig.fold(_.kind, _ => "") private def generateSemanticdb(): CommandResult = { parsedConfig match { @@ -144,7 +144,7 @@ class LsifBuildTool(index: IndexCommand) extends BuildTool("LSIF", index) { * the SemanticDB compiler plugin enabled. */ private def compile(config: Config): CommandResult = { - val tmp = Files.createTempDirectory("lsif-java") + val tmp = Files.createTempDirectory("scip-java") Files.createDirectories(tmp) Files.createDirectories(targetroot) val deps = Dependencies.resolveDependencies(config.dependencies.map(_.repr)) @@ -190,7 +190,7 @@ class LsifBuildTool(index: IndexCommand) extends BuildTool("LSIF", index) { .reporter .info( "Some SemanticDB files got generated even if there were compile errors. " + - "In most cases, this means that lsif-java managed to index everything " + + "In most cases, this means that scip-java managed to index everything " + "except the locations that had compile errors and you can ignore the compile errors." ) errors.foreach { error => @@ -226,7 +226,7 @@ class LsifBuildTool(index: IndexCommand) extends BuildTool("LSIF", index) { Dependencies .kotlinMPPCommon(self.groupId, self.artifactId, self.version) match { case Some(common) => - val outdir = Files.createTempDirectory("lsifjava-kotlin") + val outdir = Files.createTempDirectory("scipjava-kotlin") val file = common.toFile val basename = file .getName @@ -413,7 +413,7 @@ class LsifBuildTool(index: IndexCommand) extends BuildTool("LSIF", index) { ) val compiler = compilers .next() - .newInstance("lsif-java", classpath.asJava, List[String]().asJava) + .newInstance("scip-java", classpath.asJava, List[String]().asJava) .withConfiguration( new PresentationCompilerConfig { override def parameterHintsCommand(): Optional[String] = @@ -633,6 +633,13 @@ class LsifBuildTool(index: IndexCommand) extends BuildTool("LSIF", index) { } -object LsifBuildTool { +object ScipBuildTool { + // This file is named "lsif-java.json" instead of "scip-java.json" in order to + // preserve compatibility with "JVM dependencies" repos + // (https://docs.sourcegraph.com/integration/jvm). If we rename to + // "scip-java.json" then the git commit SHAs of these repos changes and old + // canonical URLs will become 404 links. The lsif-java.json file is not + // supposed to be written by end-users anyways. It's mostly an implementation + // default for how we support cross-repo navigation with scip-java. val ConfigFileName = "lsif-java.json" } diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/TemporaryFiles.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/TemporaryFiles.scala similarity index 73% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/TemporaryFiles.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/TemporaryFiles.scala index 281e420b..57e5dc08 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/buildtools/TemporaryFiles.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/TemporaryFiles.scala @@ -1,10 +1,10 @@ -package com.sourcegraph.lsif_java.buildtools +package com.sourcegraph.scip_java.buildtools import java.nio.file.Files import java.nio.file.Path import com.sourcegraph.io.DeleteVisitor -import com.sourcegraph.lsif_java.commands.IndexCommand +import com.sourcegraph.scip_java.commands.IndexCommand object TemporaryFiles { def withDirectory[T](index: IndexCommand)(fn: Path => T): T = { @@ -12,7 +12,7 @@ object TemporaryFiles { case Some(tmp) => fn(tmp) case None => - val tmp = Files.createTempDirectory("lsif-java") + val tmp = Files.createTempDirectory("scip-java") try fn(tmp) finally { if (index.cleanup) { diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/commands/CommentSyntax.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/commands/CommentSyntax.scala similarity index 90% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_java/commands/CommentSyntax.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_java/commands/CommentSyntax.scala index fc5b34e9..ca47368f 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/commands/CommentSyntax.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/commands/CommentSyntax.scala @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_java.commands +package com.sourcegraph.scip_java.commands case class CommentSyntax(value: String) { private val map = diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/commands/IndexCommand.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/commands/IndexCommand.scala similarity index 92% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_java/commands/IndexCommand.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_java/commands/IndexCommand.scala index ed1b9e88..815307a6 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/commands/IndexCommand.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/commands/IndexCommand.scala @@ -1,11 +1,11 @@ -package com.sourcegraph.lsif_java.commands +package com.sourcegraph.scip_java.commands import java.nio.file.Files import java.nio.file.Path import java.nio.file.Paths import com.sourcegraph.io.AbsolutePath -import com.sourcegraph.lsif_java.buildtools.BuildTool +import com.sourcegraph.scip_java.buildtools.BuildTool import fansi.Color import moped.annotations._ import moped.cli.Application @@ -17,16 +17,16 @@ import os.ProcessOutput import os.Shellable @Description( - "Automatically generate an LSIF index in the current working directory." + "Automatically generate an SCIP index in the current working directory." ) -@Usage("lsif-java index [OPTIONS ...] -- [TRAILING_ARGUMENTS ...]") +@Usage("scip-java index [OPTIONS ...] -- [TRAILING_ARGUMENTS ...]") @ExampleUsage( """|# Running the `index` command with no flags should work most of the time. - |$ lsif-java index""".stripMargin + |$ scip-java index""".stripMargin ) case class IndexCommand( - @Description("The path where to generate the LSIF index.") output: Path = - Paths.get("dump.lsif"), + @Description("The path where to generate the SCIP index.") output: Path = + Paths.get("index.scip"), @Description( "The directory where to generate SemanticDB files. " + "Defaults to a build-specific path. " + @@ -55,7 +55,7 @@ case class IndexCommand( @Description( "Optional. The build command to use to compile all sources. " + "Defaults to a build-specific command. For example, the default command for Maven command is 'clean verify -DskipTests'." + - "To override the default, pass in the build command after a double dash: 'lsif-java index -- compile test:compile'" + "To override the default, pass in the build command after a double dash: 'scip-java index -- compile test:compile'" ) @TrailingArguments() buildCommand: List[String] = Nil, @Inline @@ -158,7 +158,7 @@ case class IndexCommand( } 1 case tool :: Nil => - tool.generateLsif() + tool.generateScip() case many => val names = many.map(_.name).mkString(", ") app.error( diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/commands/IndexDependencyCommand.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/commands/IndexDependencyCommand.scala similarity index 93% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_java/commands/IndexDependencyCommand.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_java/commands/IndexDependencyCommand.scala index 7a031abd..28e22289 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/commands/IndexDependencyCommand.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/commands/IndexDependencyCommand.scala @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_java.commands +package com.sourcegraph.scip_java.commands import java.nio.charset.StandardCharsets import java.nio.file.Files @@ -10,8 +10,8 @@ import java.util.jar.JarFile import com.sourcegraph.io.AbsolutePath import com.sourcegraph.io.DeleteVisitor -import com.sourcegraph.lsif_java.Dependencies -import com.sourcegraph.lsif_semanticdb.JavaVersion +import com.sourcegraph.scip_java.Dependencies +import com.sourcegraph.scip_semanticdb.JavaVersion import moped.annotations.DeprecatedName import moped.annotations.Hidden import moped.cli.Command @@ -35,7 +35,7 @@ final case class IndexDependencyCommand( if (!snapshot) absoluteTarget else - Files.createTempDirectory("lsif-java-index") + Files.createTempDirectory("scip-java-index") private val snapshotTarget = absoluteTarget def run(): Int = { if (dependency == "") { @@ -103,7 +103,8 @@ final case class IndexDependencyCommand( ) index .copy( - buildTool = Some("lsif"), + buildTool = Some("scip"), + output = Paths.get("dump.lsif"), app = app.withEnv(app.env.withWorkingDirectory(indexTarget)) ) .run() diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/commands/IndexSemanticdbCommand.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/commands/IndexSemanticdbCommand.scala similarity index 75% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_java/commands/IndexSemanticdbCommand.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_java/commands/IndexSemanticdbCommand.scala index aa899bef..102e57cc 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/commands/IndexSemanticdbCommand.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/commands/IndexSemanticdbCommand.scala @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_java.commands +package com.sourcegraph.scip_java.commands import java.nio.file.Path import java.nio.file.Paths @@ -7,13 +7,13 @@ import java.util.concurrent.TimeUnit import scala.jdk.CollectionConverters._ import com.sourcegraph.io.AbsolutePath -import com.sourcegraph.lsif_java.BuildInfo -import com.sourcegraph.lsif_java.buildtools.ClasspathEntry import com.sourcegraph.lsif_protocol.LsifToolInfo -import com.sourcegraph.lsif_semanticdb.ConsoleLsifSemanticdbReporter -import com.sourcegraph.lsif_semanticdb.LsifOutputFormat -import com.sourcegraph.lsif_semanticdb.LsifSemanticdb -import com.sourcegraph.lsif_semanticdb.LsifSemanticdbOptions +import com.sourcegraph.scip_java.BuildInfo +import com.sourcegraph.scip_java.buildtools.ClasspathEntry +import com.sourcegraph.scip_semanticdb.ConsoleScipSemanticdbReporter +import com.sourcegraph.scip_semanticdb.ScipOutputFormat +import com.sourcegraph.scip_semanticdb.ScipSemanticdb +import com.sourcegraph.scip_semanticdb.ScipSemanticdbOptions import moped.annotations._ import moped.cli.Application import moped.cli.Command @@ -21,15 +21,15 @@ import moped.cli.CommandParser import ujson.Arr import ujson.Obj -@Description("Converts SemanticDB files into a single LSIF index file.") -@Usage("lsif-java index-semanticdb [OPTIONS ...] [POSITIONAL ARGUMENTS ...]") +@Description("Converts SemanticDB files into a single SCIP index file.") +@Usage("scip-java index-semanticdb [OPTIONS ...] [POSITIONAL ARGUMENTS ...]") @ExampleUsage( - "lsif-java index-semanticdb --out=myindex.lsif my/targetroot1 my/targetroot2" + "scip-java index-semanticdb --out=myindex.scip my/targetroot1 my/targetroot2" ) @CommandName("index-semanticdb") final case class IndexSemanticdbCommand( @Description("The name of the output file.") output: Path = Paths - .get("dump.lsif"), + .get("index.scip"), @Description( "Whether to process the SemanticDB files in parallel" ) parallel: Boolean = true, @@ -50,13 +50,13 @@ final case class IndexSemanticdbCommand( def absoluteTargetroots: List[Path] = targetroot.map(AbsolutePath.of(_, app.env.workingDirectory)) def run(): Int = { - val reporter = new ConsoleLsifSemanticdbReporter(app) + val reporter = new ConsoleScipSemanticdbReporter(app) val outputFilename = output.getFileName.toString - val format = LsifOutputFormat.fromFilename(outputFilename) - if (format == LsifOutputFormat.UNKNOWN) { + val format = ScipOutputFormat.fromFilename(outputFilename) + if (format == ScipOutputFormat.UNKNOWN) { app.error( s"unknown output format for filename '$outputFilename'. " + - s"Supported file extension are `*.lsif`, `*.lsif-typed'" + s"Supported file extension are `*.scip`, `*scip '" ) return 1 } @@ -67,14 +67,14 @@ final case class IndexSemanticdbCommand( .distinct .toList val options = - new LsifSemanticdbOptions( + new ScipSemanticdbOptions( targetroot.map(ts => AbsolutePath.of(ts, sourceroot)).asJava, AbsolutePath.of(output, sourceroot), sourceroot, reporter, LsifToolInfo .newBuilder() - .setName("lsif-java") + .setName("scip-java") .setVersion(BuildInfo.version) .build(), "java", @@ -83,7 +83,7 @@ final case class IndexSemanticdbCommand( packages.map(_.toPackageInformation).asJava, buildKind ) - LsifSemanticdb.run(options) + ScipSemanticdb.run(options) postPackages(packages) if (!app.reporter.hasErrors()) { app.info(options.output.toString) @@ -123,10 +123,6 @@ final case class IndexSemanticdbCommand( } object IndexSemanticdbCommand { - def isJsonFormat(path: Path): Boolean = - path.getFileName.toString.endsWith(".lsif") - def isProtobufFormat(path: Path): Boolean = - path.getFileName.toString.endsWith(".lsif-protobuf") val default = IndexSemanticdbCommand() implicit val parser = CommandParser.derive(default) } diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/commands/SnapshotCommand.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/commands/SnapshotCommand.scala similarity index 92% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_java/commands/SnapshotCommand.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_java/commands/SnapshotCommand.scala index 9dda69a0..30dd7110 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/commands/SnapshotCommand.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/commands/SnapshotCommand.scala @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_java.commands +package com.sourcegraph.scip_java.commands import java.nio.charset.StandardCharsets import java.nio.file._ @@ -8,7 +8,7 @@ import scala.collection.mutable.ListBuffer import scala.jdk.CollectionConverters._ import com.sourcegraph.io.DeleteVisitor -import com.sourcegraph.lsif_java.SemanticdbPrinters +import com.sourcegraph.scip_java.SemanticdbPrinters import com.sourcegraph.semanticdb_javac.Semanticdb.TextDocument import com.sourcegraph.semanticdb_javac.Semanticdb.TextDocuments import moped.annotations._ @@ -19,9 +19,9 @@ import moped.cli.CommandParser @Description( "Generates annotated snapshots for each SemanticDB file in the given target roots." ) -@Usage("lsif-java snapshot [OPTIONS ...] [POSITIONAL ARGUMENTS ...]") +@Usage("scip-java snapshot [OPTIONS ...] [POSITIONAL ARGUMENTS ...]") @ExampleUsage( - "lsif-java snapshot --output=generated/ my/targetroo1 my/targetroot2" + "scip-java snapshot --output=generated/ my/targetroo1 my/targetroot2" ) @CommandName("snapshot") case class SnapshotCommand( diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/commands/SnapshotLsifCommand.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/commands/SnapshotLsifCommand.scala similarity index 94% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_java/commands/SnapshotLsifCommand.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_java/commands/SnapshotLsifCommand.scala index 2454faf5..71e70759 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_java/commands/SnapshotLsifCommand.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/commands/SnapshotLsifCommand.scala @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_java.commands +package com.sourcegraph.scip_java.commands import java.net.URI import java.nio.charset.StandardCharsets @@ -27,6 +27,7 @@ import com.sourcegraph.io.DeleteVisitor import com.sourcegraph.lsif_protocol.LsifHover import com.sourcegraph.lsif_protocol.LsifObject import com.sourcegraph.lsif_protocol.LsifPosition +import com.sourcegraph.scip_semanticdb.ScipOutputFormat import com.sourcegraph.semanticdb_javac.Semanticdb import com.sourcegraph.semanticdb_javac.Semanticdb.Language import com.sourcegraph.semanticdb_javac.Semanticdb.SymbolInformation @@ -106,20 +107,20 @@ object SnapshotLsifCommand { sourceroot: Path, reporter: Reporter ): List[TextDocument] = { - val lsif = new IndexedLsif(input, objects, sourceroot, reporter) - lsif + val scip = new IndexedScip(input, objects, sourceroot, reporter) + scip .ranges .iterator - .filter(o => lsif.contains.contains(o.getId)) + .filter(o => scip.contains.contains(o.getId)) .foreach { o => - val docId = lsif.contains(o.getId) - val doc = lsif.textDocument(docId) - val isDefinition = lsif + val docId = scip.contains(o.getId) + val doc = scip.textDocument(docId) + val isDefinition = scip .G .predecessors(o) .asScala .exists(_.getLabel == "definitionResult") - val isSyntheticDefinition = isDefinition && !lsif.next.contains(o.getId) + val isSyntheticDefinition = isDefinition && !scip.next.contains(o.getId) val role = if (isSyntheticDefinition) Role.SYNTHETIC_DEFINITION @@ -128,13 +129,13 @@ object SnapshotLsifCommand { else Role.REFERENCE - val symbol = lsif + val symbol = scip .symbolFromRange(o) - .orElse(lsif.monikerViaDefinition(o)) + .orElse(scip.monikerViaDefinition(o)) .getOrElse { - val id = lsif + val id = scip .next - .getOrElse(o.getId, lsif.nextMissingMonikerId(doc.getUri)) + .getOrElse(o.getId, scip.nextMissingMonikerId(doc.getUri)) s"localMissingMoniker$id" } val occ = SymbolOccurrence @@ -154,7 +155,7 @@ object SnapshotLsifCommand { doc.addOccurrences(occ) if (isDefinition) { - val hover = lsif.hoverViaDefinition(o) + val hover = scip.hoverViaDefinition(o) val symInfo = SymbolInformation .newBuilder() // we cheese it a bit here, as this is less work than trying to reconstruct @@ -164,7 +165,7 @@ object SnapshotLsifCommand { doc.addSymbols(symInfo) } } - lsif.documents.values.map(_.build()).toList + scip.documents.values.map(_.build()).toList } def signatureLines(documentation: String): Iterator[String] = { @@ -175,7 +176,7 @@ object SnapshotLsifCommand { .takeWhile(_ != "```") } - class IndexedLsif( + class IndexedScip( val path: Path, val objects: mutable.Buffer[LsifObject], val sourceroot: Path, @@ -241,7 +242,7 @@ object SnapshotLsifCommand { def visualizeGraph(): String = { import scala.sys.process._ - s"lsif-visualize $path".!! + s"scip-visualize $path".!! } def asciiGraph(symbol: String): String = { import org.scalameta.ascii.layout._ @@ -347,13 +348,13 @@ object SnapshotLsifCommand { } /** - * Runs `lsif-visualize` against this LSIF dump and opens the generated SVG + * Runs `scip-visualize` against this SCIP dump and opens the generated SVG * file in your browser. */ def visualizeOpenBrowser(): Unit = { import scala.sys.process._ - val svg = Files.createTempFile("lsif-java", "dump.svg") - (s"lsif-visualize $path" #| s"dot -Tsvg -o $svg").! + val svg = Files.createTempFile("scip-java", "dump.svg") + (s"scip-visualize $path" #| s"dot -Tsvg -o $svg").! s"open $svg".! } @@ -512,7 +513,8 @@ object SnapshotLsifCommand { } def parseInput(input: Path): mutable.Buffer[LsifObject] = { - if (IndexSemanticdbCommand.isJsonFormat(input)) { + val format = ScipOutputFormat.fromFilename(input.getFileName().toString()) + if (format == ScipOutputFormat.GRAPH_NDJSON) { val lines = Files.lines(input) try { lines.parallel().flatMap(parseLine).collect(Collectors.toList()).asScala diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_semanticdb/ConsoleLsifSemanticdbReporter.scala b/scip-java/src/main/scala/com/sourcegraph/scip_semanticdb/ConsolescipSemanticdbReporter.scala similarity index 83% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_semanticdb/ConsoleLsifSemanticdbReporter.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_semanticdb/ConsolescipSemanticdbReporter.scala index d65e0586..af6ef07d 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_semanticdb/ConsoleLsifSemanticdbReporter.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_semanticdb/ConsolescipSemanticdbReporter.scala @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb +package com.sourcegraph.scip_semanticdb import java.io.PrintWriter import java.nio.file.NoSuchFileException @@ -9,10 +9,10 @@ import moped.progressbars.InteractiveProgressBar /** * Console reporter for index-semanticdb command. */ -class ConsoleLsifSemanticdbReporter(app: Application) - extends LsifSemanticdbReporter { +class ConsoleScipSemanticdbReporter(app: Application) + extends ScipSemanticdbReporter { - val renderer = new LsifSemanticdbProgressRenderer + val renderer = new ScipSemanticdbProgressRenderer val progressbar = new InteractiveProgressBar( new PrintWriter(app.env.standardError), diff --git a/lsif-java/src/main/scala/com/sourcegraph/lsif_semanticdb/LsifSemanticdbProgressRenderer.scala b/scip-java/src/main/scala/com/sourcegraph/scip_semanticdb/ScipSemanticdbProgressRenderer.scala similarity index 75% rename from lsif-java/src/main/scala/com/sourcegraph/lsif_semanticdb/LsifSemanticdbProgressRenderer.scala rename to scip-java/src/main/scala/com/sourcegraph/scip_semanticdb/ScipSemanticdbProgressRenderer.scala index 3c6ceb16..a06ee9d6 100644 --- a/lsif-java/src/main/scala/com/sourcegraph/lsif_semanticdb/LsifSemanticdbProgressRenderer.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_semanticdb/ScipSemanticdbProgressRenderer.scala @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb +package com.sourcegraph.scip_semanticdb import java.util.concurrent.atomic.AtomicInteger @@ -7,9 +7,9 @@ import moped.progressbars.ProgressStep import org.typelevel.paiges.Doc /** - * Progress bar for the lsif-semanticdb command. + * Progress bar for the scip-semanticdb command. */ -class LsifSemanticdbProgressRenderer() extends ProgressRenderer { +class ScipSemanticdbProgressRenderer() extends ProgressRenderer { var totalSize = 0 val currentSize = new AtomicInteger() override def renderStep(): ProgressStep = { @@ -22,7 +22,7 @@ class LsifSemanticdbProgressRenderer() extends ProgressRenderer { val percentage: String = s"${(ratio * 100).toInt}%".padTo(4, ' ') val bars = ("#" * progress).padTo(10, ' ') val render = - f"Generating LSIF... [$bars] $percentage $current%,.0f files processed" + f"Generating SCIP... [$bars] $percentage $current%,.0f files processed" ProgressStep(static = Doc.empty, dynamic = Doc.text(render)) } } diff --git a/lsif-semanticdb/BUILD b/scip-semanticdb/BUILD similarity index 86% rename from lsif-semanticdb/BUILD rename to scip-semanticdb/BUILD index 5017374d..0ace93ce 100644 --- a/lsif-semanticdb/BUILD +++ b/scip-semanticdb/BUILD @@ -7,14 +7,14 @@ package( java_binary( name = "bazel", - main_class = "com.sourcegraph.lsif_semanticdb.BazelBuildTool", + main_class = "com.sourcegraph.scip_semanticdb.BazelBuildTool", runtime_deps = [ - ":lsif-semanticdb", + ":scip-semanticdb", ], ) java_library( - name = "lsif-semanticdb", + name = "scip-semanticdb", srcs = glob(["src/main/java/**/*.java"]), deps = [ ":all_java_proto", diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/BazelBuildTool.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/BazelBuildTool.java similarity index 90% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/BazelBuildTool.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/BazelBuildTool.java index 25891ee6..5539bbb5 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/BazelBuildTool.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/BazelBuildTool.java @@ -1,6 +1,6 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; -import com.sourcegraph.lsif_java.Bazelbuild; +import com.sourcegraph.scip_java.Bazelbuild; import com.sourcegraph.lsif_protocol.LsifToolInfo; import java.io.*; @@ -32,26 +32,26 @@ public static int runAndReturnExitCode(String[] args) throws IOException, Interr } List mavenPackages = mavenPackages(options); - LsifSemanticdbOptions lsifOptions = - new LsifSemanticdbOptions( + ScipSemanticdbOptions scipOptions = + new ScipSemanticdbOptions( options.targetroots, options.output, options.sourceroot, - new LsifSemanticdbReporter() { + new ScipSemanticdbReporter() { @Override public void error(Throwable e) { e.printStackTrace(System.err); } }, - LsifToolInfo.newBuilder().setName("lsif-java").setVersion("HEAD").build(), + LsifToolInfo.newBuilder().setName("scip-java").setVersion("HEAD").build(), "java", - LsifOutputFormat.TYPED_PROTOBUF, + ScipOutputFormat.TYPED_PROTOBUF, options.parallel, mavenPackages, ""); - LsifSemanticdb.run(lsifOptions); - if (!lsifOptions.reporter.hasErrors()) { - System.out.println("done: " + lsifOptions.output); + ScipSemanticdb.run(scipOptions); + if (!scipOptions.reporter.hasErrors()) { + System.out.println("done: " + scipOptions.output); } return 0; } diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/BazelOptions.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/BazelOptions.java similarity index 95% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/BazelOptions.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/BazelOptions.java index 5a454550..3321f750 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/BazelOptions.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/BazelOptions.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; import java.io.IOException; import java.nio.file.*; @@ -16,9 +16,9 @@ public class BazelOptions { public boolean parallel = false; public static void printHelp() { - System.out.println("bazel run @lsif_java//lsif-semanticdb:bazel -- [..options]"); + System.out.println("bazel run @scip_java//scip-semanticdb:bazel -- [..options]"); System.out.println(); - System.out.println("Command-line tool to generate LSIF for Java targets in a Bazel build."); + System.out.println("Command-line tool to generate SCIP for Java targets in a Bazel build."); System.out.println( "The idiomatic way to run this tool is to compile it from source via Bazel\n" + "and invoke it through `bazel run ...`."); @@ -95,7 +95,7 @@ public static Optional parse(String[] args) throws IOException { if (options.sourceroot == null) { if (args.length == 0) { errors.add( - "missing required flag --sourceroot . To fix this problem, pass in the `--sourceroot` flag like this: bazel run @lsif_java//lsif-semanticdb:bazel -- --sourceroot \"$PWD\""); + "missing required flag --sourceroot . To fix this problem, pass in the `--sourceroot` flag like this: bazel run @scip_java//scip-semanticdb:bazel -- --sourceroot \"$PWD\""); } else { errors.add("missing required flag --sourceroot "); } @@ -111,7 +111,7 @@ public static Optional parse(String[] args) throws IOException { } if (options.output == null) { - options.output = Paths.get("dump.lsif-typed"); + options.output = Paths.get("index.scip"); } if (!errors.isEmpty()) { diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/InputStreamBytes.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/InputStreamBytes.java similarity index 93% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/InputStreamBytes.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/InputStreamBytes.java index 82de93ac..868eca59 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/InputStreamBytes.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/InputStreamBytes.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; import java.io.ByteArrayOutputStream; import java.io.IOException; diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/JavaVersion.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/JavaVersion.java similarity index 98% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/JavaVersion.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/JavaVersion.java index b125f702..9bedd24b 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/JavaVersion.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/JavaVersion.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; import java.io.DataInputStream; import java.io.IOException; diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/JdkPackage.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/JdkPackage.java similarity index 90% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/JdkPackage.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/JdkPackage.java index 36750cd5..23b4f28b 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/JdkPackage.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/JdkPackage.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; public class JdkPackage extends Package { public final String version; diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/MarkupContent.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/MarkupContent.java similarity index 85% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/MarkupContent.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/MarkupContent.java index a850fcf8..47614bc4 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/MarkupContent.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/MarkupContent.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; import com.sourcegraph.lsif_protocol.MarkupKind; diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/MavenPackage.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/MavenPackage.java similarity index 96% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/MavenPackage.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/MavenPackage.java index 2ae26388..6a528f5d 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/MavenPackage.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/MavenPackage.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; import java.nio.file.Path; diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/OperatingSystem.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/OperatingSystem.java similarity index 77% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/OperatingSystem.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/OperatingSystem.java index 0ef4c79b..a04d82c8 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/OperatingSystem.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/OperatingSystem.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; public class OperatingSystem { public static boolean isWindows() { diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/Package.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/Package.java similarity index 86% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/Package.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/Package.java index 8dd7994a..e4b5ef1f 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/Package.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/Package.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; public abstract class Package { public static final Package EMPTY = @@ -18,7 +18,7 @@ public String version() { public abstract String version(); - public final String lsifTypedEncoding() { + public final String scipTypedEncoding() { return "maven " + encode(repoName()) + " " + encode(version()); } diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/PackageTable.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/PackageTable.java similarity index 94% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/PackageTable.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/PackageTable.java index 55d2f594..c49d801f 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/PackageTable.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/PackageTable.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; import java.io.File; import java.io.IOException; @@ -25,14 +25,14 @@ public class PackageTable implements Function { private final Map byClassfile = new HashMap<>(); private final Set cachedJdkSymbols = new HashSet<>(); - private final Map lsif = new ConcurrentHashMap<>(); + private final Map scip = new ConcurrentHashMap<>(); private final JavaVersion javaVersion; - private final LsifWriter writer; + private final ScipWriter writer; private static final PathMatcher JAR_PATTERN = FileSystems.getDefault().getPathMatcher("glob:**.jar"); - public PackageTable(LsifSemanticdbOptions options, LsifWriter writer) throws IOException { + public PackageTable(ScipSemanticdbOptions options, ScipWriter writer) throws IOException { this.writer = writer; this.javaVersion = new JavaVersion(); // NOTE: it's important that we index the JDK before maven packages. Some maven packages @@ -46,7 +46,7 @@ public PackageTable(LsifSemanticdbOptions options, LsifWriter writer) throws IOE } public void writeMonikerPackage(int monikerId, Package pkg) { - int pkgId = lsif.computeIfAbsent(pkg, this); + int pkgId = scip.computeIfAbsent(pkg, this); writer.emitPackageInformationEdge(monikerId, pkgId); } diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/RangeComparator.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/RangeComparator.java similarity index 95% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/RangeComparator.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/RangeComparator.java index 6a368d4f..aa16a5af 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/RangeComparator.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/RangeComparator.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; import com.sourcegraph.semanticdb_javac.Semanticdb.Range; diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/ResultIds.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ResultIds.java similarity index 92% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/ResultIds.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ResultIds.java index 557ec296..6a3d6a2f 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/ResultIds.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ResultIds.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; /** Utility to deal with a group of IDs for a result set, definition result and reference result. */ public class ResultIds { diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/ResultSets.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ResultSets.java similarity index 94% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/ResultSets.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ResultSets.java index 092b82ce..1afdfca2 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/ResultSets.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ResultSets.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; import com.sourcegraph.semanticdb_javac.SemanticdbSymbols; import java.util.HashMap; @@ -10,7 +10,7 @@ /** Utility to deal with the creation of result sets. */ public class ResultSets implements Function { - private final LsifWriter writer; + private final ScipWriter writer; private final Map globals; private final HashMap locals; private final Set exportedSymbols; @@ -19,12 +19,12 @@ public class ResultSets implements Function { private final boolean isJdkRepo; public ResultSets( - LsifWriter writer, + ScipWriter writer, Map globals, Set exportedSymbols, Set localDefinitions, PackageTable packages, - LsifSemanticdbOptions options) { + ScipSemanticdbOptions options) { this.writer = writer; this.globals = globals; this.exportedSymbols = exportedSymbols; diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifByteOutputStream.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipByteOutputStream.java similarity index 75% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifByteOutputStream.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipByteOutputStream.java index d340c335..60dc97c1 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifByteOutputStream.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipByteOutputStream.java @@ -1,14 +1,14 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; import java.io.ByteArrayOutputStream; import java.io.OutputStreamWriter; /** Wrapper around a ByteArrayOutputStream and OutputStreamWriter. */ -public class LsifByteOutputStream { +public class ScipByteOutputStream { public final ByteArrayOutputStream output; public final OutputStreamWriter writer; - public LsifByteOutputStream() { + public ScipByteOutputStream() { this.output = new ByteArrayOutputStream(); this.writer = new OutputStreamWriter(output); } diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifOutputFormat.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipOutputFormat.java similarity index 61% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifOutputFormat.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipOutputFormat.java index 2c97a2a1..52b7faa3 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifOutputFormat.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipOutputFormat.java @@ -1,11 +1,11 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; /** - * Whether to generate dump.lsif (JSON) or dump.lsif-protobuf (Protobuf). + * Whether to generate index.scip (JSON) or index.scip-protobuf (Protobuf). * *

The Protobuf format is experimental and currently only exists as a proof-of-concept. */ -public enum LsifOutputFormat { +public enum ScipOutputFormat { GRAPH_NDJSON, GRAPH_PROTOBUF, TYPED_PROTOBUF, @@ -20,11 +20,11 @@ public boolean isNewlineDelimitedJSON() { return this == GRAPH_NDJSON || this == TYPED_NDJSON; } - public static LsifOutputFormat fromFilename(String name) { + public static ScipOutputFormat fromFilename(String name) { if (name.endsWith(".lsif")) return GRAPH_NDJSON; if (name.endsWith(".lsif-protobuf")) return GRAPH_PROTOBUF; - if (name.endsWith(".lsif-typed")) return TYPED_PROTOBUF; - if (name.endsWith(".lsif-typed.ndjson")) return TYPED_NDJSON; + if (name.endsWith(".scip")) return TYPED_PROTOBUF; + if (name.endsWith(".scip.ndjson")) return TYPED_NDJSON; return UNKNOWN; } } diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifOutputStream.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipOutputStream.java similarity index 84% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifOutputStream.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipOutputStream.java index 2a27f3ea..3eaf6af5 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifOutputStream.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipOutputStream.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; import com.google.protobuf.Descriptors.FieldDescriptor; import com.google.protobuf.util.JsonFormat; @@ -13,18 +13,18 @@ import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.atomic.AtomicBoolean; -/** Low-level methods to write raw LSIF objects into the output stream. */ -public class LsifOutputStream { - private final LsifSemanticdbOptions options; +/** Low-level methods to write raw SCIP objects into the output stream. */ +public class ScipOutputStream { + private final ScipSemanticdbOptions options; private final OutputStream out; private final ConcurrentLinkedDeque buffer; private final AtomicBoolean isFlushing; private static final byte[] NEWLINE = "\n".getBytes(StandardCharsets.UTF_8); - private final ThreadLocal baos = - ThreadLocal.withInitial(LsifByteOutputStream::new); + private final ThreadLocal baos = + ThreadLocal.withInitial(ScipByteOutputStream::new); private final Printer jsonPrinter; - public LsifOutputStream(LsifSemanticdbOptions options, OutputStream out) { + public ScipOutputStream(ScipSemanticdbOptions options, OutputStream out) { this.options = options; this.out = out; buffer = new ConcurrentLinkedDeque<>(); @@ -45,7 +45,7 @@ public void write(byte[] bytes) { } public void writeLsifObject(LsifObject.Builder object) { - LsifByteOutputStream b = baos.get(); + ScipByteOutputStream b = baos.get(); b.output.reset(); try { switch (options.format) { diff --git a/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipProcessingException.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipProcessingException.java new file mode 100644 index 00000000..79ceb717 --- /dev/null +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipProcessingException.java @@ -0,0 +1,13 @@ +package com.sourcegraph.scip_semanticdb; + +public class ScipProcessingException extends Throwable { + + public ScipProcessingException(ScipTextDocument doc, Throwable cause) { + super(doc.semanticdbPath.toString(), cause); + } + + @Override + public Throwable fillInStackTrace() { + return this; + } +} diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifSemanticdb.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipSemanticdb.java similarity index 87% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifSemanticdb.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipSemanticdb.java index 5fa76ef2..62e6402c 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifSemanticdb.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipSemanticdb.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; import com.google.protobuf.CodedInputStream; import com.sourcegraph.lsif_protocol.MarkupKind; @@ -7,7 +7,7 @@ import com.sourcegraph.semanticdb_javac.Semanticdb.SymbolOccurrence; import com.sourcegraph.semanticdb_javac.Semanticdb.SymbolOccurrence.Role; import com.sourcegraph.semanticdb_javac.SemanticdbSymbols; -import lib.codeintel.lsif_typed.LsifTyped; +import lib.codeintel.scip.Scip; import java.io.IOException; import java.io.InputStream; @@ -21,21 +21,21 @@ import java.util.stream.Stream; import java.util.stream.StreamSupport; -/** The core logic that converts SemanticDB into LSIF. */ -public class LsifSemanticdb { - private final LsifWriter writer; - private final LsifSemanticdbOptions options; +/** The core logic that converts SemanticDB into SCIP. */ +public class ScipSemanticdb { + private final ScipWriter writer; + private final ScipSemanticdbOptions options; private final Map globals; - public LsifSemanticdb(LsifWriter writer, LsifSemanticdbOptions options) { + public ScipSemanticdb(ScipWriter writer, ScipSemanticdbOptions options) { this.writer = writer; this.options = options; this.globals = new ConcurrentHashMap<>(); } - public static void run(LsifSemanticdbOptions options) throws IOException { - LsifWriter writer = new LsifWriter(options); - new LsifSemanticdb(writer, options).run(); + public static void run(ScipSemanticdbOptions options) throws IOException { + ScipWriter writer = new ScipWriter(options); + new ScipSemanticdb(writer, options).run(); } private void run() throws IOException { @@ -46,11 +46,11 @@ private void run() throws IOException { if (files.isEmpty()) { options.reporter.error( "No SemanticDB files found. " - + "This typically means that `lsif-java` is unable to automatically " + + "This typically means that `scip-java` is unable to automatically " + "index this codebase. If you are using Gradle or Maven, please report an issue to " - + "https://github.com/sourcegraph/lsif-java and include steps to reproduce. " + + "https://github.com/sourcegraph/scip-java and include steps to reproduce. " + "If you are using a different build tool, make sure that you have followed all " - + "of the steps from https://sourcegraph.github.io/lsif-java/docs/manual-configuration.html"); + + "of the steps from https://sourcegraph.github.io/scip-java/docs/manual-configuration.html"); return; } options.reporter.startProcessing(files.size()); @@ -80,7 +80,7 @@ public static boolean isDefinitionRole(Role role) { } private void processTypedDocument(Path path, PackageTable packages) { - for (LsifTextDocument doc : parseTextDocument(path).collect(Collectors.toList())) { + for (ScipTextDocument doc : parseTextDocument(path).collect(Collectors.toList())) { if (doc.semanticdb.getOccurrencesCount() == 0) { continue; } @@ -90,12 +90,11 @@ private void processTypedDocument(Path path, PackageTable packages) { StreamSupport.stream(options.sourceroot.relativize(absolutePath).spliterator(), false) .map(p -> p.getFileName().toString()) .collect(Collectors.joining("/")); - LsifTyped.Document.Builder tdoc = - LsifTyped.Document.newBuilder().setRelativePath(relativePath); + Scip.Document.Builder tdoc = Scip.Document.newBuilder().setRelativePath(relativePath); for (SymbolOccurrence occ : doc.sortedSymbolOccurrences()) { int role = 0; if (isDefinitionRole(occ.getRole())) { - role |= LsifTyped.SymbolRole.Definition_VALUE; + role |= Scip.SymbolRole.Definition_VALUE; } boolean isSingleLineRange = occ.getRange().getStartLine() == occ.getRange().getEndLine(); Iterable range = @@ -111,7 +110,7 @@ private void processTypedDocument(Path path, PackageTable packages) { occ.getRange().getEndCharacter()); Package pkg = packages.packageForSymbol(occ.getSymbol()).orElse(Package.EMPTY); tdoc.addOccurrences( - LsifTyped.Occurrence.newBuilder() + Scip.Occurrence.newBuilder() .addAllRange(range) .setSymbol(typedSymbol(occ.getSymbol(), pkg)) .setSymbolRoles(role)); @@ -119,8 +118,8 @@ private void processTypedDocument(Path path, PackageTable packages) { Symtab symtab = new Symtab(doc.semanticdb); for (SymbolInformation info : doc.semanticdb.getSymbolsList()) { Package pkg = packages.packageForSymbol(info.getSymbol()).orElse(Package.EMPTY); - LsifTyped.SymbolInformation.Builder tinfo = - LsifTyped.SymbolInformation.newBuilder().setSymbol(typedSymbol(info.getSymbol(), pkg)); + Scip.SymbolInformation.Builder tinfo = + Scip.SymbolInformation.newBuilder().setSymbol(typedSymbol(info.getSymbol(), pkg)); for (String overriddenSymbol : info.getOverriddenSymbolsList()) { if (isIgnoredOverriddenSymbol(overriddenSymbol)) { @@ -129,7 +128,7 @@ private void processTypedDocument(Path path, PackageTable packages) { Package overriddenSymbolPkg = packages.packageForSymbol(overriddenSymbol).orElse(Package.EMPTY); tinfo.addRelationships( - LsifTyped.Relationship.newBuilder() + Scip.Relationship.newBuilder() .setSymbol(typedSymbol(overriddenSymbol, overriddenSymbolPkg)) .setIsImplementation(true) .setIsReference(SemanticdbSymbols.isMethod(info.getSymbol()))); @@ -146,19 +145,19 @@ private void processTypedDocument(Path path, PackageTable packages) { } tdoc.addSymbols(tinfo); } - writer.emitTyped(LsifTyped.Index.newBuilder().addDocuments(tdoc).build()); + writer.emitTyped(Scip.Index.newBuilder().addDocuments(tdoc).build()); } } - private LsifTyped.Index typedMetadata() { - return LsifTyped.Index.newBuilder() + private Scip.Index typedMetadata() { + return Scip.Index.newBuilder() .setMetadata( - LsifTyped.Metadata.newBuilder() - .setVersion(LsifTyped.ProtocolVersion.UnspecifiedProtocolVersion) + Scip.Metadata.newBuilder() + .setVersion(Scip.ProtocolVersion.UnspecifiedProtocolVersion) .setProjectRoot(options.sourceroot.toUri().toString()) - .setTextDocumentEncoding(LsifTyped.TextEncoding.UTF8) + .setTextDocumentEncoding(Scip.TextEncoding.UTF8) .setToolInfo( - LsifTyped.ToolInfo.newBuilder() + Scip.ToolInfo.newBuilder() .setName(options.toolInfo.getName()) .setVersion(options.toolInfo.getVersion()) .addAllArguments(options.toolInfo.getArgsList()))) @@ -199,17 +198,17 @@ private Stream processPath( } private Stream processDocument( - LsifTextDocument doc, Set isExportedSymbol, PackageTable packages) { + ScipTextDocument doc, Set isExportedSymbol, PackageTable packages) { try { return Stream.of(processDocumentUnsafe(doc, isExportedSymbol, packages)); } catch (Exception e) { - options.reporter.error(new LsifProcessingException(doc, e)); + options.reporter.error(new ScipProcessingException(doc, e)); return Stream.empty(); } } private Integer processDocumentUnsafe( - LsifTextDocument doc, Set isExportedSymbol, PackageTable packages) { + ScipTextDocument doc, Set isExportedSymbol, PackageTable packages) { Symtab symtab = new Symtab(doc.semanticdb); int documentId = writer.emitDocument(doc); @@ -311,11 +310,11 @@ private Integer processDocumentUnsafe( return documentId; } - private Stream parseTextDocument(Path semanticdbPath) { + private Stream parseTextDocument(Path semanticdbPath) { try { return textDocumentsParseFrom(semanticdbPath).getDocumentsList().stream() .filter(sdb -> !sdb.getOccurrencesList().isEmpty()) - .map(sdb -> new LsifTextDocument(semanticdbPath, sdb, options.sourceroot)); + .map(sdb -> new ScipTextDocument(semanticdbPath, sdb, options.sourceroot)); } catch (IOException e) { options.reporter.error("invalid protobuf: " + semanticdbPath); options.reporter.error(e); @@ -356,7 +355,7 @@ private Semanticdb.TextDocuments textDocumentsParseFromBytes(byte[] bytes) throw // NOTE(olafur): For some reason, NoSuchMethodError gets thrown when running `snapshots/run` // in the sbt build. I'm unable to reproduce the error in `snapshots/test` or when running the // published version - // of `lsif-java index`. + // of `scip-java index`. return Semanticdb.TextDocuments.parseFrom(bytes); } } diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifSemanticdbOptions.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipSemanticdbOptions.java similarity index 73% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifSemanticdbOptions.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipSemanticdbOptions.java index c592cf5c..dfc61c4a 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifSemanticdbOptions.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipSemanticdbOptions.java @@ -1,31 +1,31 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; import com.sourcegraph.lsif_protocol.LsifToolInfo; import java.nio.file.Path; import java.util.List; -/** Configuration options to tweak the lsif-semanticdb command. */ -public class LsifSemanticdbOptions { +/** Configuration options to tweak the scip-semanticdb command. */ +public class ScipSemanticdbOptions { public final List targetroots; public final Path output; public final Path sourceroot; - public final LsifSemanticdbReporter reporter; + public final ScipSemanticdbReporter reporter; public final LsifToolInfo toolInfo; public final String language; - public final LsifOutputFormat format; + public final ScipOutputFormat format; public final boolean parallel; public final List packages; public final String buildKind; - public LsifSemanticdbOptions( + public ScipSemanticdbOptions( List targetroots, Path output, Path sourceroot, - LsifSemanticdbReporter reporter, + ScipSemanticdbReporter reporter, LsifToolInfo toolInfo, String language, - LsifOutputFormat format, + ScipOutputFormat format, boolean parallel, List packages, String buildKind) { diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifSemanticdbReporter.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipSemanticdbReporter.java similarity index 64% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifSemanticdbReporter.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipSemanticdbReporter.java index a2a8e3e0..c42992b8 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifSemanticdbReporter.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipSemanticdbReporter.java @@ -1,12 +1,12 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; /** - * API to hook into the event stream of the lsif-semanticdb command. + * API to hook into the event stream of the scip-semanticdb command. * - *

The lsif-semanticdb command doesn't fail fast on the first error. Clients are expected to + *

The scip-semanticdb command doesn't fail fast on the first error. Clients are expected to * handle errors through the error method. */ -public abstract class LsifSemanticdbReporter { +public abstract class ScipSemanticdbReporter { public void error(Throwable e) {} public void error(String message) { diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifTextDocument.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipTextDocument.java similarity index 96% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifTextDocument.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipTextDocument.java index 74e13596..ab89b10c 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifTextDocument.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipTextDocument.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; import com.sourcegraph.semanticdb_javac.Semanticdb; import com.sourcegraph.semanticdb_javac.SemanticdbSymbols; @@ -6,15 +6,15 @@ import java.nio.file.Path; import java.util.*; -/** Wrapper around a SemanticDB TextDocument with LSIF-related utilities. */ -public class LsifTextDocument { +/** Wrapper around a SemanticDB TextDocument with SCIP-related utilities. */ +public class ScipTextDocument { public final Path semanticdbPath; public Semanticdb.TextDocument semanticdb; public int id; public final Map symbols; public final Map localSymbols; - public LsifTextDocument( + public ScipTextDocument( Path semanticdbPath, Semanticdb.TextDocument semanticdb, Path sourceroot) { this.semanticdbPath = semanticdbPath; this.symbols = new HashMap<>(); @@ -25,7 +25,7 @@ public LsifTextDocument( @Override public String toString() { - return "LsifDocument{" + return "ScipDocument{" + "path=" + semanticdbPath + ", semanticdb=" @@ -36,7 +36,7 @@ public String toString() { } public List sortedSymbolOccurrences() { - return LsifTextDocument.sortedSymbolOccurrences(semanticdb); + return ScipTextDocument.sortedSymbolOccurrences(semanticdb); } public static List sortedSymbolOccurrences( diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifWriter.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipWriter.java similarity index 70% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifWriter.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipWriter.java index d4fd88dd..8ec8237c 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifWriter.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipWriter.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; import com.sourcegraph.lsif_protocol.LsifHover; import com.sourcegraph.lsif_protocol.LsifHover.Content; @@ -6,7 +6,7 @@ import com.sourcegraph.lsif_protocol.LsifPosition; import com.sourcegraph.semanticdb_javac.Semanticdb; import com.sourcegraph.semanticdb_javac.SemanticdbSymbols; -import lib.codeintel.lsif_typed.LsifTyped; +import lib.codeintel.scip.Scip; import java.io.BufferedOutputStream; import java.io.IOException; @@ -20,36 +20,36 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; -/** High-level utility methods to write LSIF vertex/edge objects into the LSIF output stream. */ -public class LsifWriter implements AutoCloseable { +/** High-level utility methods to write SCIP vertex/edge objects into the SCIP output stream. */ +public class ScipWriter implements AutoCloseable { private final Path tmp; - private final LsifOutputStream output; - private final LsifSemanticdbOptions options; + private final ScipOutputStream output; + private final ScipSemanticdbOptions options; private final AtomicInteger id = new AtomicInteger(); - public LsifWriter(LsifSemanticdbOptions options) throws IOException { + public ScipWriter(ScipSemanticdbOptions options) throws IOException { if (OperatingSystem.isWindows()) { - this.tmp = Files.createTempFile("lsif-semanticdb", "dump.lsif"); + this.tmp = Files.createTempFile("scip-semanticdb", "index.scip"); } else { this.tmp = Files.createTempFile( - "lsif-semanticdb", - "dump.lsif", + "scip-semanticdb", + "index.scip", PosixFilePermissions.asFileAttribute(PosixFilePermissions.fromString("rw-r--r--"))); } this.output = - new LsifOutputStream(options, new BufferedOutputStream(Files.newOutputStream(tmp))); + new ScipOutputStream(options, new BufferedOutputStream(Files.newOutputStream(tmp))); this.options = options; } - public void emitTyped(LsifTyped.Index index) { + public void emitTyped(Scip.Index index) { this.output.write(index.toByteArray()); } public void emitMetaData() { emitObject( - lsifVertex("metaData") + scipVertex("metaData") .setVersion("0.4.3") .setProjectRoot(options.sourceroot.toUri().toString()) .setPositionEncoding("utf-16") @@ -57,23 +57,23 @@ public void emitMetaData() { } public int emitProject(String language) { - return emitObject(lsifVertex("project").setKind(language)); + return emitObject(scipVertex("project").setKind(language)); } - public int emitDocument(LsifTextDocument doc) { + public int emitDocument(ScipTextDocument doc) { return emitObject( - lsifVertex("document") + scipVertex("document") .setUri(doc.semanticdb.getUri()) .setLanguage(doc.semanticdb.getLanguage().toString().toLowerCase())); } public void emitContains(int outV, List inVs) { - emitObject(lsifEdge("contains").setOutV(outV).addAllInVs(inVs)); + emitObject(scipEdge("contains").setOutV(outV).addAllInVs(inVs)); } public int emitRange(Semanticdb.Range range) { return emitObject( - lsifVertex("range") + scipVertex("range") .setStart( LsifPosition.newBuilder() .setLine(range.getStartLine()) @@ -85,32 +85,32 @@ public int emitRange(Semanticdb.Range range) { } public int emitResultSet() { - return emitObject(lsifVertex("resultSet")); + return emitObject(scipVertex("resultSet")); } public void emitNext(int outV, int inV) { - emitObject(lsifEdge("next").setOutV(outV).setInV(inV)); + emitObject(scipEdge("next").setOutV(outV).setInV(inV)); } public void emitEdge(String label, int outV, int inV) { - emitObject(lsifEdge(label).setOutV(outV).setInV(inV)); + emitObject(scipEdge(label).setOutV(outV).setInV(inV)); } public int emitReferenceResult(int resultSet) { - int referenceResult = emitObject(lsifVertex("referenceResult")); + int referenceResult = emitObject(scipVertex("referenceResult")); emitEdge("textDocument/references", resultSet, referenceResult); return referenceResult; } public int emitDefinitionResult(int resultSet) { - int definitionResult = emitObject(lsifVertex("definitionResult")); + int definitionResult = emitObject(scipVertex("definitionResult")); emitEdge("textDocument/definition", resultSet, definitionResult); return definitionResult; } public int emitHoverResult(MarkupContent markupContents) { return emitObject( - lsifVertex("hoverResult") + scipVertex("hoverResult") .setResult( LsifHover.newBuilder() .setContents( @@ -120,39 +120,39 @@ public int emitHoverResult(MarkupContent markupContents) { } public void emitHoverEdge(int outV, int inV) { - emitObject(lsifEdge("textDocument/hover").setOutV(outV).setInV(inV)); + emitObject(scipEdge("textDocument/hover").setOutV(outV).setInV(inV)); } public void emitMonikerEdge(int outV, int inV) { - emitObject(lsifEdge("moniker").setOutV(outV).setInV(inV)); + emitObject(scipEdge("moniker").setOutV(outV).setInV(inV)); } public int emitMonikerVertex(String symbol, boolean isExportedSymbol) { String kind = SemanticdbSymbols.isLocal(symbol) ? "local" : isExportedSymbol ? "export" : "import"; return emitObject( - lsifVertex("moniker").setKind(kind).setScheme("semanticdb").setIdentifier(symbol)); + scipVertex("moniker").setKind(kind).setScheme("semanticdb").setIdentifier(symbol)); } public void emitPackageInformationEdge(int monikerId, int packageId) { - emitObject(lsifEdge("packageInformation").setOutV(monikerId).setInV(packageId)); + emitObject(scipEdge("packageInformation").setOutV(monikerId).setInV(packageId)); } public int emitpackageinformationVertex(Package pkg) { return emitObject( - lsifVertex("packageInformation") + scipVertex("packageInformation") .setName(pkg.repoName()) .setManager("jvm-dependencies") .setVersion(pkg.version())); } public void emitItem(int outV, int inV, int document) { - emitObject(lsifEdge("item").setOutV(outV).addInVs(inV).setDocument(document)); + emitObject(scipEdge("item").setOutV(outV).addInVs(inV).setDocument(document)); } public void emitReferenceResultsItemEdge(int outV, Iterable inVs, int document) { emitObject( - lsifEdge("item") + scipEdge("item") .setOutV(outV) .addAllInVs(inVs) .setDocument(document) @@ -182,16 +182,16 @@ public int emitObject(LsifObject.Builder object) { return object.getId(); } - private LsifObject.Builder lsifObject() { + private LsifObject.Builder scipObject() { return LsifObject.newBuilder().setId(nextId()); } - private LsifObject.Builder lsifEdge(String label) { - return lsifObject().setType("edge").setLabel(label); + private LsifObject.Builder scipEdge(String label) { + return scipObject().setType("edge").setLabel(label); } - private LsifObject.Builder lsifVertex(String label) { - return lsifObject().setType("vertex").setLabel(label); + private LsifObject.Builder scipVertex(String label) { + return scipObject().setType("vertex").setLabel(label); } private int nextId() { diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/SemanticdbTreeVisitor.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SemanticdbTreeVisitor.java similarity index 98% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/SemanticdbTreeVisitor.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SemanticdbTreeVisitor.java index da82567a..3ecd82a4 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/SemanticdbTreeVisitor.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SemanticdbTreeVisitor.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; import com.sourcegraph.semanticdb_javac.Semanticdb.*; diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/SemanticdbWalker.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SemanticdbWalker.java similarity index 87% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/SemanticdbWalker.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SemanticdbWalker.java index b092973d..c0cd0a71 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/SemanticdbWalker.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SemanticdbWalker.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; import java.io.IOException; import java.nio.file.FileSystems; @@ -14,11 +14,11 @@ /** A file visitor that recursively collects all SemanticDB files in a given directory. */ public class SemanticdbWalker extends SimpleFileVisitor { private final ArrayList result; - private final LsifSemanticdbOptions options; + private final ScipSemanticdbOptions options; private final PathMatcher semanticdbPattern = FileSystems.getDefault().getPathMatcher("glob:**.semanticdb"); - public SemanticdbWalker(LsifSemanticdbOptions options) { + public SemanticdbWalker(ScipSemanticdbOptions options) { this.options = options; result = new ArrayList<>(); } @@ -37,7 +37,7 @@ public FileVisitResult visitFileFailed(Path file, IOException exc) { return FileVisitResult.CONTINUE; } - public static List findSemanticdbFiles(LsifSemanticdbOptions options) throws IOException { + public static List findSemanticdbFiles(ScipSemanticdbOptions options) throws IOException { SemanticdbWalker walker = new SemanticdbWalker(options); PathMatcher jarPattern = FileSystems.getDefault().getPathMatcher("glob:**.jar"); for (Path root : options.targetroots) { diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/SignatureFormatter.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SignatureFormatter.java similarity index 99% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/SignatureFormatter.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SignatureFormatter.java index 72050b90..43efa6ab 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/SignatureFormatter.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SignatureFormatter.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; import com.sourcegraph.semanticdb_javac.Semanticdb.SymbolInformation.Property; import com.sourcegraph.semanticdb_javac.Semanticdb.*; @@ -226,7 +226,7 @@ private void formatMethodSignature(MethodSignature methodSignature) { if (symbolInformation.getKind() == SymbolInformation.Kind.CONSTRUCTOR) { String owner = SymbolDescriptor.parseFromSymbol(symbolInformation.getSymbol()).owner; - // Fix for https://github.com/sourcegraph/lsif-java/issues/150 + // Fix for https://github.com/sourcegraph/scip-java/issues/150 if (!owner.equals(SemanticdbSymbols.NONE)) { s.append(SymbolDescriptor.parseFromSymbol(owner).descriptor.name); } diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/SignatureFormatterException.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SignatureFormatterException.java similarity index 93% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/SignatureFormatterException.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SignatureFormatterException.java index 636f8c20..5c094aeb 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/SignatureFormatterException.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SignatureFormatterException.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; import com.sourcegraph.semanticdb_javac.Semanticdb; diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/SymbolDescriptor.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SymbolDescriptor.java similarity index 99% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/SymbolDescriptor.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SymbolDescriptor.java index a9da8f1c..77bfb32a 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/SymbolDescriptor.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SymbolDescriptor.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; import com.sourcegraph.semanticdb_javac.SemanticdbSymbols; import com.sourcegraph.semanticdb_javac.SemanticdbSymbols.Descriptor; diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/SymbolOccurrences.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SymbolOccurrences.java similarity index 94% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/SymbolOccurrences.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SymbolOccurrences.java index 82908200..b4d30949 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/SymbolOccurrences.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SymbolOccurrences.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; import com.sourcegraph.semanticdb_javac.Semanticdb; diff --git a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/Symtab.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/Symtab.java similarity index 95% rename from lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/Symtab.java rename to scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/Symtab.java index f066d2dd..5324df0e 100644 --- a/lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/Symtab.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/Symtab.java @@ -1,4 +1,4 @@ -package com.sourcegraph.lsif_semanticdb; +package com.sourcegraph.scip_semanticdb; import com.sourcegraph.semanticdb_javac.Semanticdb; diff --git a/lsif-semanticdb/src/main/protobuf/bazelbuild.proto b/scip-semanticdb/src/main/protobuf/bazelbuild.proto similarity index 99% rename from lsif-semanticdb/src/main/protobuf/bazelbuild.proto rename to scip-semanticdb/src/main/protobuf/bazelbuild.proto index 97334f51..f95dbc70 100644 --- a/lsif-semanticdb/src/main/protobuf/bazelbuild.proto +++ b/scip-semanticdb/src/main/protobuf/bazelbuild.proto @@ -21,7 +21,7 @@ package bazel_query; // option cc_api_version = 2; // option java_api_version = 1; -option java_package = "com.sourcegraph.lsif_java"; +option java_package = "com.sourcegraph.scip_java"; message License { repeated string license_type = 1; diff --git a/lsif-semanticdb/src/main/protobuf/lsif.proto b/scip-semanticdb/src/main/protobuf/lsif.proto similarity index 99% rename from lsif-semanticdb/src/main/protobuf/lsif.proto rename to scip-semanticdb/src/main/protobuf/lsif.proto index 22440081..70654279 100644 --- a/lsif-semanticdb/src/main/protobuf/lsif.proto +++ b/scip-semanticdb/src/main/protobuf/lsif.proto @@ -1,6 +1,7 @@ syntax = "proto3"; option java_multiple_files = true; + package com.sourcegraph.lsif_protocol; message LsifObject { diff --git a/lsif-semanticdb/src/main/protobuf/lsif-typed.proto b/scip-semanticdb/src/main/protobuf/scip.proto similarity index 99% rename from lsif-semanticdb/src/main/protobuf/lsif-typed.proto rename to scip-semanticdb/src/main/protobuf/scip.proto index 9469a81b..6e0b8cc6 100644 --- a/lsif-semanticdb/src/main/protobuf/lsif-typed.proto +++ b/scip-semanticdb/src/main/protobuf/scip.proto @@ -10,11 +10,11 @@ syntax = "proto3"; -package lib.codeintel.lsif_typed; +package lib.codeintel.scip; -option go_package = "github.com/sourcegraph/sourcegraph/lib/codeintel/lsif_typed/"; +option go_package = "github.com/sourcegraph/sourcegraph/lib/codeintel/scip/"; -// Index represents a complete LSIF index for a workspace this is rooted at a +// Index represents a complete SCIP index for a workspace this is rooted at a // single directory. An Index message payload can have a large memory footprint // and it's therefore recommended to emit and consume an Index payload one field // value at a time. To permit streaming consumption of an Index payload, the diff --git a/semanticdb-agent/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbAgent.java b/semanticdb-agent/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbAgent.java index e147bcc1..5b1bb187 100644 --- a/semanticdb-agent/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbAgent.java +++ b/semanticdb-agent/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbAgent.java @@ -71,7 +71,7 @@ public static void premain(String agentArgs, Instrumentation inst) { } private static PrintStream newLogger() { - Path path = Paths.get(System.getProperty("user.home"), ".lsif-java", "logs.txt"); + Path path = Paths.get(System.getProperty("user.home"), ".scip-java", "logs.txt"); try { Files.createDirectories(path.getParent()); OutputStream fos = diff --git a/semanticdb-java/src/main/protobuf/semanticdb.proto b/semanticdb-java/src/main/protobuf/semanticdb.proto index 382f2425..e8fea62d 100644 --- a/semanticdb-java/src/main/protobuf/semanticdb.proto +++ b/semanticdb-java/src/main/protobuf/semanticdb.proto @@ -170,8 +170,8 @@ message SymbolOccurrence { REFERENCE = 1; DEFINITION = 2; // NOTE: this role does not exist in the upstream SemanticDB spec. - // WE added SYNTHETIC_DEFINITION fix the following lsif-java issue: - // https://github.com/sourcegraph/lsif-java/issues/399 + // WE added SYNTHETIC_DEFINITION fix the following scip-java issue: + // https://github.com/sourcegraph/scip-java/issues/399 SYNTHETIC_DEFINITION = 3; } Range range = 1; diff --git a/semanticdb-javac/defs.bzl b/semanticdb-javac/defs.bzl index 05310045..8890eb97 100644 --- a/semanticdb-javac/defs.bzl +++ b/semanticdb-javac/defs.bzl @@ -16,12 +16,12 @@ def java_binary(javacopts=[], plugins=[],**kwargs): def _actual_javacopts(javacopts): return select({ - "@lsif_java//semanticdb-javac:is_enabled": ["'-Xplugin:semanticdb -build-tool:bazel'"] + javacopts, + "@scip_java//semanticdb-javac:is_enabled": ["'-Xplugin:semanticdb -build-tool:bazel'"] + javacopts, "//conditions:default": javacopts, }) def _actual_plugins(plugins): return select({ - "@lsif_java//semanticdb-javac:is_enabled": ["@lsif_java//semanticdb-javac:plugin"] + plugins, + "@scip_java//semanticdb-javac:is_enabled": ["@scip_java//semanticdb-javac:plugin"] + plugins, "//conditions:default": plugins, }) diff --git a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbTaskListener.java b/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbTaskListener.java index 61c59965..ffb803e6 100644 --- a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbTaskListener.java +++ b/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbTaskListener.java @@ -129,7 +129,7 @@ public static Path absolutePathFromUri(SemanticdbJavacOptions options, JavaFileO } // Infers the `-sourceroot:` flag from the provided file. - // FIXME: add unit tests https://github.com/sourcegraph/lsif-java/issues/444 + // FIXME: add unit tests https://github.com/sourcegraph/scip-java/issues/444 private void inferBazelSourceroot(JavaFileObject file) { if (options.uriScheme != UriScheme.BAZEL || options.sourceroot != null) { return; diff --git a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbVisitor.java b/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbVisitor.java index 9bb622bb..120b449e 100644 --- a/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbVisitor.java +++ b/semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbVisitor.java @@ -157,7 +157,7 @@ public Void visitClass(ClassTree node, Void unused) { for (Symbol.TypeVariableSymbol typeSym : cls.sym.getTypeParameters()) { if (i >= typeParameters.size()) { // Happens in testcontainers/testcontainers-java, see - // https://github.com/sourcegraph/lsif-java/issues/319 + // https://github.com/sourcegraph/scip-java/issues/319 // Failed to reproduce with a minimal source file so we don't have a test case that hits // this branch. break; diff --git a/tests/benchmarks/src/main/scala/benchmarks/CompileBench.scala b/tests/benchmarks/src/main/scala/benchmarks/CompileBench.scala index 49c88745..00264ca0 100644 --- a/tests/benchmarks/src/main/scala/benchmarks/CompileBench.scala +++ b/tests/benchmarks/src/main/scala/benchmarks/CompileBench.scala @@ -11,7 +11,7 @@ import scala.meta.internal.io.FileIO import scala.meta.io.AbsolutePath import com.sourcegraph.io.DeleteVisitor -import com.sourcegraph.lsif_java.Dependencies +import com.sourcegraph.scip_java.Dependencies import org.openjdk.jmh.annotations._ import tests.TestCompiler diff --git a/tests/benchmarks/src/main/scala/benchmarks/LsifSemanticdbBench.scala b/tests/benchmarks/src/main/scala/benchmarks/ScipSemanticdbBench.scala similarity index 74% rename from tests/benchmarks/src/main/scala/benchmarks/LsifSemanticdbBench.scala rename to tests/benchmarks/src/main/scala/benchmarks/ScipSemanticdbBench.scala index 4f5469af..df37874a 100644 --- a/tests/benchmarks/src/main/scala/benchmarks/LsifSemanticdbBench.scala +++ b/tests/benchmarks/src/main/scala/benchmarks/ScipSemanticdbBench.scala @@ -5,20 +5,20 @@ import java.nio.file.Path import java.util.concurrent.TimeUnit import com.sourcegraph.io.DeleteVisitor -import com.sourcegraph.lsif_java.Dependencies -import com.sourcegraph.lsif_java.LsifJava +import com.sourcegraph.scip_java.Dependencies +import com.sourcegraph.scip_java.ScipJava import org.openjdk.jmh.annotations._ import tests.TestCompiler @State(Scope.Benchmark) -class LsifSemanticdbBench { +class ScipSemanticdbBench { var targetroot: Path = _ var deps: Dependencies = _ @Setup def setup(): Unit = { - targetroot = Files.createTempDirectory("lsif-java") + targetroot = Files.createTempDirectory("scip-java") deps = Dependencies .resolveDependencies(List("com.google.guava:guava:30.1-jre")) val compiler = @@ -41,31 +41,31 @@ class LsifSemanticdbBench { @Benchmark @BenchmarkMode(Array(Mode.SingleShotTime)) @OutputTimeUnit(TimeUnit.MILLISECONDS) - def jsonParallel(): Unit = run("dump.lsif", parallel = true) + def jsonParallel(): Unit = run("index.scip", parallel = true) @Benchmark @BenchmarkMode(Array(Mode.SingleShotTime)) @OutputTimeUnit(TimeUnit.MILLISECONDS) - def json(): Unit = run("dump.lsif", parallel = false) + def json(): Unit = run("index.scip", parallel = false) @Benchmark @BenchmarkMode(Array(Mode.SingleShotTime)) @OutputTimeUnit(TimeUnit.MILLISECONDS) - def protobufParallel(): Unit = run("dump.lsif-protobuf", parallel = true) + def protobufParallel(): Unit = run("index.scip-protobuf", parallel = true) @Benchmark @BenchmarkMode(Array(Mode.SingleShotTime)) @OutputTimeUnit(TimeUnit.MILLISECONDS) - def protobuf(): Unit = run("dump.lsif-protobuf", parallel = false) + def protobuf(): Unit = run("index.scip-protobuf", parallel = false) private def run(filename: String, parallel: Boolean): Unit = { - val output = Files.createTempFile("lsif-java", filename) + val output = Files.createTempFile("scip-java", filename) val parallelFlag = if (parallel) "--parallel" else "--no-parallel" - val exit = LsifJava + val exit = ScipJava .app .run( List( diff --git a/tests/buildTools/src/test/scala/tests/BaseBuildToolSuite.scala b/tests/buildTools/src/test/scala/tests/BaseBuildToolSuite.scala index 08c4ad06..490f1bcd 100644 --- a/tests/buildTools/src/test/scala/tests/BaseBuildToolSuite.scala +++ b/tests/buildTools/src/test/scala/tests/BaseBuildToolSuite.scala @@ -9,8 +9,8 @@ import scala.util.Properties import scala.meta.internal.io.FileIO import scala.meta.io.AbsolutePath -import com.sourcegraph.lsif_java.LsifJava -import com.sourcegraph.lsif_java.buildtools.ClasspathEntry +import com.sourcegraph.scip_java.ScipJava +import com.sourcegraph.scip_java.buildtools.ClasspathEntry import moped.testkit.DeleteVisitor import moped.testkit.FileLayout import moped.testkit.MopedSuite @@ -18,7 +18,7 @@ import munit.Tag import munit.TestOptions import os.Shellable -abstract class BaseBuildToolSuite extends MopedSuite(LsifJava.app) { +abstract class BaseBuildToolSuite extends MopedSuite(ScipJava.app) { override def environmentVariables: Map[String, String] = sys.env def tags = List.empty[Tag] diff --git a/tests/buildTools/src/test/scala/tests/GradleBuildToolSuite.scala b/tests/buildTools/src/test/scala/tests/GradleBuildToolSuite.scala index 6e3c7b9c..9c936592 100644 --- a/tests/buildTools/src/test/scala/tests/GradleBuildToolSuite.scala +++ b/tests/buildTools/src/test/scala/tests/GradleBuildToolSuite.scala @@ -106,7 +106,7 @@ class GradleBuildToolSuite extends BaseBuildToolSuite { expectedError = Some { error => assert( clue(error).contains( - """error: lsif-java does not support Gradle 6.7 when used together with Java toolchains. To fix this problem, upgrade to Gradle version 6.8 or newer and try again.""" + """error: scip-java does not support Gradle 6.7 when used together with Java toolchains. To fix this problem, upgrade to Gradle version 6.8 or newer and try again.""" ) ) }, diff --git a/tests/buildTools/src/test/scala/tests/SbtBuildToolSuite.scala b/tests/buildTools/src/test/scala/tests/SbtBuildToolSuite.scala index 99d6b40e..3df2fd64 100644 --- a/tests/buildTools/src/test/scala/tests/SbtBuildToolSuite.scala +++ b/tests/buildTools/src/test/scala/tests/SbtBuildToolSuite.scala @@ -3,7 +3,7 @@ package tests import munit.IgnoreSuite // Ignored because the sbt-sourcegraph plugin adds the -build-tool:sbt flag, which -// is yet not supported by any stable release of lsif-java. We can un-ignore this +// is yet not supported by any stable release of scip-java. We can un-ignore this // test suite after the next release. @IgnoreSuite class SbtBuildToolSuite extends BaseBuildToolSuite { diff --git a/tests/buildTools/src/test/scala/tests/LsifBuildToolSuite.scala b/tests/buildTools/src/test/scala/tests/ScipBuildToolSuite.scala similarity index 94% rename from tests/buildTools/src/test/scala/tests/LsifBuildToolSuite.scala rename to tests/buildTools/src/test/scala/tests/ScipBuildToolSuite.scala index b4c243e6..8a212222 100644 --- a/tests/buildTools/src/test/scala/tests/LsifBuildToolSuite.scala +++ b/tests/buildTools/src/test/scala/tests/ScipBuildToolSuite.scala @@ -1,8 +1,8 @@ package tests -import com.sourcegraph.lsif_java.{BuildInfo => V} +import com.sourcegraph.scip_java.{BuildInfo => V} -class LsifBuildToolSuite extends BaseBuildToolSuite { +class ScipBuildToolSuite extends BaseBuildToolSuite { override def tags = List(SkipWindows) checkBuild( "basic", diff --git a/tests/gradle-example/.gitignore b/tests/gradle-example/.gitignore index fccaf641..581a649e 100644 --- a/tests/gradle-example/.gitignore +++ b/tests/gradle-example/.gitignore @@ -1,4 +1,4 @@ -dump.lsif +index.scip semanticdb-targetroot/ .classpath .project diff --git a/tests/snapshots/src/main/generated/index-semanticdb/locals b/tests/snapshots/src/main/generated/index-semanticdb/locals index 26ea6607..12164071 100644 --- a/tests/snapshots/src/main/generated/index-semanticdb/locals +++ b/tests/snapshots/src/main/generated/index-semanticdb/locals @@ -15,7 +15,7 @@ public class Example { ────────────────────────────────── -│ LSIF Graph for symbol 'local0' │ +│ SCIP Graph for symbol 'local0' │ ────────────────────────────────── ╭──────────╮ │project(2)│ diff --git a/tests/snapshots/src/main/generated/index-semanticdb/multifile b/tests/snapshots/src/main/generated/index-semanticdb/multifile index d9f95605..2984ca35 100644 --- a/tests/snapshots/src/main/generated/index-semanticdb/multifile +++ b/tests/snapshots/src/main/generated/index-semanticdb/multifile @@ -22,7 +22,7 @@ public class Example2 { ───────────────────────────────────────────── -│ LSIF Graph for symbol 'example/Example1#' │ +│ SCIP Graph for symbol 'example/Example1#' │ ───────────────────────────────────────────── ╭──────────╮ │project(2)│ diff --git a/tests/snapshots/src/main/generated/index-semanticdb/packages b/tests/snapshots/src/main/generated/index-semanticdb/packages index 3bd0c801..c81b2f01 100644 --- a/tests/snapshots/src/main/generated/index-semanticdb/packages +++ b/tests/snapshots/src/main/generated/index-semanticdb/packages @@ -18,7 +18,7 @@ public class Example { ─────────────────────────────────────────────────────── -│ LSIF Graph for symbol 'org/hamcrest/MatcherAssert#' │ +│ SCIP Graph for symbol 'org/hamcrest/MatcherAssert#' │ ─────────────────────────────────────────────────────── ╭──────────╮ │project(2)│ diff --git a/tests/snapshots/src/main/generated/index-semanticdb/packages-jvm b/tests/snapshots/src/main/generated/index-semanticdb/packages-jvm index 668b6956..bd0dee98 100644 --- a/tests/snapshots/src/main/generated/index-semanticdb/packages-jvm +++ b/tests/snapshots/src/main/generated/index-semanticdb/packages-jvm @@ -13,7 +13,7 @@ public class Example { ───────────────────────────────────────────── -│ LSIF Graph for symbol 'java/lang/String#' │ +│ SCIP Graph for symbol 'java/lang/String#' │ ───────────────────────────────────────────── ╭──────────╮ │project(2)│ diff --git a/tests/snapshots/src/main/generated/index-semanticdb/reference b/tests/snapshots/src/main/generated/index-semanticdb/reference index 0fb6ac01..5d05b951 100644 --- a/tests/snapshots/src/main/generated/index-semanticdb/reference +++ b/tests/snapshots/src/main/generated/index-semanticdb/reference @@ -14,7 +14,7 @@ public class Example { ──────────────────────────────────────────── -│ LSIF Graph for symbol 'example/Example#' │ +│ SCIP Graph for symbol 'example/Example#' │ ──────────────────────────────────────────── ╭──────────╮ │project(2)│ diff --git a/tests/snapshots/src/main/scala/tests/LibrarySnapshotGenerator.scala b/tests/snapshots/src/main/scala/tests/LibrarySnapshotGenerator.scala index f79689c6..0d6e2de4 100644 --- a/tests/snapshots/src/main/scala/tests/LibrarySnapshotGenerator.scala +++ b/tests/snapshots/src/main/scala/tests/LibrarySnapshotGenerator.scala @@ -12,19 +12,19 @@ import java.nio.file.attribute.BasicFileAttributes import scala.util.Properties -import com.sourcegraph.lsif_java.LsifJava +import com.sourcegraph.scip_java.ScipJava import moped.reporters.ConsoleReporter class LibrarySnapshotGenerator extends SnapshotGenerator { val scalaPattern = FileSystems.getDefault.getPathMatcher("glob:**.scala") val javaPattern = FileSystems.getDefault.getPathMatcher("glob:**.java") - def runLsifJava(arguments: List[String]): Unit = { + def runScipJava(arguments: List[String]): Unit = { val baos = new ByteArrayOutputStream - val exitCode = LsifJava + val exitCode = ScipJava .app .withReporter(ConsoleReporter(new PrintStream(baos))) .withEnv( - LsifJava + ScipJava .app .env .withStandardOutput(new PrintStream(baos)) @@ -53,7 +53,7 @@ class LibrarySnapshotGenerator extends SnapshotGenerator { println(s"indexing library '$name'") val providedArguments = provided.flatMap(p => List("--provided", p)) val snapshotDir = Files.createTempDirectory("semanticdb-javac") - runLsifJava( + runScipJava( List( "index-dependency", "--snapshot", diff --git a/tests/snapshots/src/main/scala/tests/MinimizedSnapshotGenerator.scala b/tests/snapshots/src/main/scala/tests/MinimizedSnapshotGenerator.scala index c6b853d4..20706e78 100644 --- a/tests/snapshots/src/main/scala/tests/MinimizedSnapshotGenerator.scala +++ b/tests/snapshots/src/main/scala/tests/MinimizedSnapshotGenerator.scala @@ -2,8 +2,8 @@ package tests import scala.meta.io.AbsolutePath -import com.sourcegraph.lsif_java.SemanticdbPrinters -import com.sourcegraph.lsif_semanticdb.LsifTextDocument +import com.sourcegraph.scip_java.SemanticdbPrinters +import com.sourcegraph.scip_semanticdb.ScipTextDocument class MinimizedSnapshotGenerator extends SnapshotGenerator { override def run(context: SnapshotContext, handler: SnapshotHandler): Unit = { @@ -26,7 +26,7 @@ class MinimizedSnapshotGenerator extends SnapshotGenerator { val expectOutput = context .expectDirectory .resolve(relativeToSourceDirectory.toNIO) - val doc = LsifTextDocument + val doc = ScipTextDocument .manifestOccurrencesForSyntheticSymbols(file.textDocument) handler.onSnapshotTest( context, diff --git a/tests/snapshots/src/main/scala/tests/MinimizedLsifSnapshotGenerator.scala b/tests/snapshots/src/main/scala/tests/MinimizedscipSnapshotGenerator.scala similarity index 89% rename from tests/snapshots/src/main/scala/tests/MinimizedLsifSnapshotGenerator.scala rename to tests/snapshots/src/main/scala/tests/MinimizedscipSnapshotGenerator.scala index 6d3990f5..69fb4e06 100644 --- a/tests/snapshots/src/main/scala/tests/MinimizedLsifSnapshotGenerator.scala +++ b/tests/snapshots/src/main/scala/tests/MinimizedscipSnapshotGenerator.scala @@ -9,13 +9,13 @@ import scala.meta.internal.io.FileIO import scala.meta.io.AbsolutePath import com.sourcegraph.io.DeleteVisitor -import com.sourcegraph.lsif_java.LsifJava +import com.sourcegraph.scip_java.ScipJava import munit.internal.console.AnsiColors import munit.internal.difflib.Diffs -class MinimizedLsifSnapshotGenerator extends SnapshotGenerator { +class MinimizedScipSnapshotGenerator extends SnapshotGenerator { def run(args: List[String]): Unit = { - val exit = LsifJava.app.run(args) + val exit = ScipJava.app.run(args) require(exit == 0) } def onFinished(context: SnapshotContext): Unit = () @@ -40,8 +40,8 @@ class MinimizedLsifSnapshotGenerator extends SnapshotGenerator { sourceDirectory: AbsolutePath ): Unit = { val sourceroot = AbsolutePath(BuildInfo.sourceroot) - val lsifOutput = Files.createTempDirectory("lsif-java").resolve("dump.lsif") - val snapshotOutput = AbsolutePath(Files.createTempDirectory("lsif-java")) + val scipOutput = Files.createTempDirectory("scip-java").resolve("dump.lsif") + val snapshotOutput = AbsolutePath(Files.createTempDirectory("scip-java")) try { run( List( @@ -49,7 +49,7 @@ class MinimizedLsifSnapshotGenerator extends SnapshotGenerator { "--cwd", sourceroot.toString(), "--output", - lsifOutput.toString, + scipOutput.toString, "--targetroot", targetroot.toString() ) @@ -60,7 +60,7 @@ class MinimizedLsifSnapshotGenerator extends SnapshotGenerator { "--cwd", sourceroot.toString(), "--input", - lsifOutput.toString, + scipOutput.toString, "--output", snapshotOutput.toString ) @@ -94,7 +94,7 @@ class MinimizedLsifSnapshotGenerator extends SnapshotGenerator { val expectFile = context.expectDirectory.resolve("snapshot-lsif.diff") handler.onSnapshotTest(context, expectFile, () => diffs.mkString("\n")) } finally { - Files.walkFileTree(lsifOutput, new DeleteVisitor()) + Files.walkFileTree(scipOutput, new DeleteVisitor()) Files.walkFileTree(snapshotOutput.toNIO, new DeleteVisitor()) } } diff --git a/tests/snapshots/src/main/scala/tests/LsifGraphSnapshotGenerator.scala b/tests/snapshots/src/main/scala/tests/ScipGraphSnapshotGenerator.scala similarity index 84% rename from tests/snapshots/src/main/scala/tests/LsifGraphSnapshotGenerator.scala rename to tests/snapshots/src/main/scala/tests/ScipGraphSnapshotGenerator.scala index 88cf240d..5b78bd68 100644 --- a/tests/snapshots/src/main/scala/tests/LsifGraphSnapshotGenerator.scala +++ b/tests/snapshots/src/main/scala/tests/ScipGraphSnapshotGenerator.scala @@ -5,13 +5,13 @@ import java.nio.file.Files import java.nio.file.Path import com.sourcegraph.io.DeleteVisitor -import com.sourcegraph.lsif_java.LsifJava -import com.sourcegraph.lsif_java.commands.SnapshotLsifCommand -import com.sourcegraph.lsif_java.commands.SnapshotLsifCommand.IndexedLsif +import com.sourcegraph.scip_java.ScipJava +import com.sourcegraph.scip_java.commands.SnapshotLsifCommand +import com.sourcegraph.scip_java.commands.SnapshotLsifCommand.IndexedScip import moped.reporters.ConsoleReporter import moped.testkit.FileLayout -class LsifGraphSnapshotGenerator extends SnapshotGenerator { +class ScipGraphSnapshotGenerator extends SnapshotGenerator { override def run(context: SnapshotContext, handler: SnapshotHandler): Unit = { val gen = new Gen(context, handler) @@ -85,9 +85,9 @@ class LsifGraphSnapshotGenerator extends SnapshotGenerator { class Gen(context: SnapshotContext, handler: SnapshotHandler) { def runSuccessfully(args: List[String], sourceroot: Path): Unit = { - val exit = LsifJava + val exit = ScipJava .app - .withEnv(LsifJava.app.env.withWorkingDirectory(sourceroot)) + .withEnv(ScipJava.app.env.withWorkingDirectory(sourceroot)) .run(args) require(exit == 0) } @@ -104,9 +104,9 @@ class LsifGraphSnapshotGenerator extends SnapshotGenerator { context, expectFile, () => { - val tmp = Files.createTempDirectory("lsif-java") + val tmp = Files.createTempDirectory("scip-java") val targetroot = tmp.resolve("targetroot") - val outputLsif = tmp.resolve("dump.lsif") + val outputScip = tmp.resolve("dump.lsif") val outputSnapshot = tmp.resolve("snapshot") val sourceroot = tmp.resolve("workingDirectory") FileLayout.fromString(original, sourceroot) @@ -135,19 +135,19 @@ class LsifGraphSnapshotGenerator extends SnapshotGenerator { "index-semanticdb", "--no-parallel", "--output", - outputLsif.toString, + outputScip.toString, targetroot.toString ), sourceroot ) - val objects = SnapshotLsifCommand.parseInput(outputLsif) + val objects = SnapshotLsifCommand.parseInput(outputScip) val reporter = ConsoleReporter(System.out) - val lsif = new IndexedLsif(outputLsif, objects, sourceroot, reporter) + val scip = new IndexedScip(outputScip, objects, sourceroot, reporter) runSuccessfully( List( "snapshot-lsif", "--input", - outputLsif.toString(), + outputScip.toString(), "--output", outputSnapshot.toString() ), @@ -157,13 +157,13 @@ class LsifGraphSnapshotGenerator extends SnapshotGenerator { Files.isDirectory(outputSnapshot), s"snapshot-lsif command did not create directory $outputSnapshot" ) - val snapshotLsif = FileLayout.asString(outputSnapshot) + val snapshotScip = FileLayout.asString(outputSnapshot) val obtained = new StringBuilder() .header("Source code") - .append(snapshotLsif) + .append(snapshotScip) .append("\n") - .header(s"LSIF Graph for symbol '$symbol'") - .append(lsif.asciiGraph(symbol)) + .header(s"SCIP Graph for symbol '$symbol'") + .append(scip.asciiGraph(symbol)) .append("\n") .toString() Files.walkFileTree(tmp, new DeleteVisitor()) diff --git a/tests/snapshots/src/main/scala/tests/SemanticdbJavacSnapshotGenerator.scala b/tests/snapshots/src/main/scala/tests/SemanticdbJavacSnapshotGenerator.scala index 3872d9e6..a56c9417 100644 --- a/tests/snapshots/src/main/scala/tests/SemanticdbJavacSnapshotGenerator.scala +++ b/tests/snapshots/src/main/scala/tests/SemanticdbJavacSnapshotGenerator.scala @@ -5,7 +5,7 @@ object SemanticdbJavacSnapshotGenerator List( new LibrarySnapshotGenerator(), new MinimizedSnapshotGenerator(), - new MinimizedLsifSnapshotGenerator(), - new LsifGraphSnapshotGenerator() + new MinimizedScipSnapshotGenerator(), + new ScipGraphSnapshotGenerator() ) ) diff --git a/tests/snapshots/src/test/scala/tests/SnapshotSuite.scala b/tests/snapshots/src/test/scala/tests/SnapshotSuite.scala index 1560a1f8..4ae7cebf 100644 --- a/tests/snapshots/src/test/scala/tests/SnapshotSuite.scala +++ b/tests/snapshots/src/test/scala/tests/SnapshotSuite.scala @@ -16,8 +16,8 @@ class LibrarySnapshotSuite extends SnapshotSuite(new LibrarySnapshotGenerator) class MinimizedSnapshotSuite extends SnapshotSuite(new MinimizedSnapshotGenerator) -class MinimizedLsifSnapshotSuite - extends SnapshotSuite(new MinimizedLsifSnapshotGenerator) +class MinimizedScipSnapshotSuite + extends SnapshotSuite(new MinimizedScipSnapshotGenerator) -class LsifGraphSnapshotSuite - extends SnapshotSuite(new LsifGraphSnapshotGenerator) +class ScipGraphSnapshotSuite + extends SnapshotSuite(new ScipGraphSnapshotGenerator) diff --git a/tests/unit/src/main/scala/tests/TestCompiler.scala b/tests/unit/src/main/scala/tests/TestCompiler.scala index 2fcf0fbb..7e2db434 100644 --- a/tests/unit/src/main/scala/tests/TestCompiler.scala +++ b/tests/unit/src/main/scala/tests/TestCompiler.scala @@ -88,7 +88,7 @@ class TestCompiler( .asScala .toList val compilerWithClasspath = compiler.newInstance( - "file://lsif-java", + "file://scip-java", Classpath(classpath).entries.map(_.toNIO).asJava, (scalacOptions ++ extraScalacOptions).asJava ) diff --git a/tests/unit/src/test/scala/tests/JavaVersionSuite.scala b/tests/unit/src/test/scala/tests/JavaVersionSuite.scala index 1260f0e6..013cadcc 100644 --- a/tests/unit/src/test/scala/tests/JavaVersionSuite.scala +++ b/tests/unit/src/test/scala/tests/JavaVersionSuite.scala @@ -1,6 +1,6 @@ package tests -import com.sourcegraph.lsif_semanticdb.JavaVersion +import com.sourcegraph.scip_semanticdb.JavaVersion import munit.FunSuite import munit.TestOptions diff --git a/tests/unit/src/test/scala/tests/OverridesSuite.scala b/tests/unit/src/test/scala/tests/OverridesSuite.scala index a29e9fe4..daa732ee 100644 --- a/tests/unit/src/test/scala/tests/OverridesSuite.scala +++ b/tests/unit/src/test/scala/tests/OverridesSuite.scala @@ -4,7 +4,7 @@ import java.util.stream.Collectors import scala.meta.Input -import com.sourcegraph.lsif_semanticdb.Symtab +import com.sourcegraph.scip_semanticdb.Symtab import munit.FunSuite import munit.TestOptions diff --git a/tests/unit/src/test/scala/tests/ScalaVersionSuite.scala b/tests/unit/src/test/scala/tests/ScalaVersionSuite.scala index 8dd707ab..a52e9415 100644 --- a/tests/unit/src/test/scala/tests/ScalaVersionSuite.scala +++ b/tests/unit/src/test/scala/tests/ScalaVersionSuite.scala @@ -2,8 +2,8 @@ package tests import java.nio.file.Paths -import com.sourcegraph.lsif_java.buildtools.ScalaVersion -import com.sourcegraph.lsif_java.{BuildInfo => V} +import com.sourcegraph.scip_java.buildtools.ScalaVersion +import com.sourcegraph.scip_java.{BuildInfo => V} import munit.FunSuite import munit.TestOptions diff --git a/tests/unit/src/test/scala/tests/SemanticdbPrintersSuite.scala b/tests/unit/src/test/scala/tests/SemanticdbPrintersSuite.scala index 4b3cb380..6b9ba48e 100644 --- a/tests/unit/src/test/scala/tests/SemanticdbPrintersSuite.scala +++ b/tests/unit/src/test/scala/tests/SemanticdbPrintersSuite.scala @@ -1,6 +1,6 @@ package tests -import com.sourcegraph.lsif_java.SemanticdbPrinters +import com.sourcegraph.scip_java.SemanticdbPrinters import com.sourcegraph.semanticdb_javac.Semanticdb.Documentation import com.sourcegraph.semanticdb_javac.Semanticdb.Range import com.sourcegraph.semanticdb_javac.Semanticdb.SymbolInformation diff --git a/tests/unit/src/test/scala/tests/SnapshotCommandSuite.scala b/tests/unit/src/test/scala/tests/SnapshotCommandSuite.scala index 3b99ee49..8bc17b53 100644 --- a/tests/unit/src/test/scala/tests/SnapshotCommandSuite.scala +++ b/tests/unit/src/test/scala/tests/SnapshotCommandSuite.scala @@ -4,11 +4,11 @@ import java.nio.file.Files import scala.meta.inputs.Input -import com.sourcegraph.lsif_java.LsifJava +import com.sourcegraph.scip_java.ScipJava import moped.testkit.FileLayout import moped.testkit.MopedSuite -class SnapshotCommandSuite extends MopedSuite(LsifJava.app) { +class SnapshotCommandSuite extends MopedSuite(ScipJava.app) { test("snapshot") { FileLayout.fromString( """/main/Sample.java diff --git a/tests/unit/src/test/scala/tests/SymbolDescriptorSuite.scala b/tests/unit/src/test/scala/tests/SymbolDescriptorSuite.scala index 670e1276..9e07f8d9 100644 --- a/tests/unit/src/test/scala/tests/SymbolDescriptorSuite.scala +++ b/tests/unit/src/test/scala/tests/SymbolDescriptorSuite.scala @@ -2,7 +2,7 @@ package tests import scala.meta.internal.semanticdb.Scala._ -import com.sourcegraph.lsif_semanticdb.SymbolDescriptor +import com.sourcegraph.scip_semanticdb.SymbolDescriptor import com.sourcegraph.semanticdb_javac.SemanticdbSymbols.Descriptor.Kind import munit.FunSuite import munit.TestOptions diff --git a/website/pages/en/index.js b/website/pages/en/index.js index 350b8b42..23851556 100755 --- a/website/pages/en/index.js +++ b/website/pages/en/index.js @@ -109,7 +109,7 @@ const Features = (props) => { { title: "Simple installation", content: - "Run the `lsif-java` command-line tool at the root of your Gradle/Maven/sbt build to generate an LSIF index. No manual configuration needed.", + "Run the `scip-java` command-line tool at the root of your Gradle/Maven/sbt build to generate an SCIP index. No manual configuration needed.", image: "https://user-images.githubusercontent.com/1408093/109820615-769c5580-7c35-11eb-9063-98e932c5d6c5.png", imageAlign: "left", diff --git a/website/siteConfig.js b/website/siteConfig.js index 6aeb6ae4..19b8fbd0 100644 --- a/website/siteConfig.js +++ b/website/siteConfig.js @@ -1,17 +1,17 @@ // See https://docusaurus.io/docs/site-config.html for all the possible // site configuration options. -const repoUrl = "https://github.com/sourcegraph/lsif-java"; -const baseUrl = "/lsif-java/"; +const repoUrl = "https://github.com/sourcegraph/scip-java"; +const baseUrl = "/scip-java/"; const siteConfig = { - title: "lsif-java", - tagline: "Java indexer for the Language Server Index Format (LSIF)", - url: "https://sourcegraph.github.io/lsif-java", + title: "scip-java", + tagline: "Java indexer for the Language Server Index Format (SCIP)", + url: "https://sourcegraph.github.io/scip-java", baseUrl: baseUrl, // Used for publishing and more - projectName: "lsif-java", + projectName: "scip-java", organizationName: "sourcegraph", // algolia: { @@ -29,8 +29,8 @@ const siteConfig = { // users, /* path to images for header/footer */ - headerIcon: "img/lsif-java.png", - footerIcon: "img/lsif-java.png", + headerIcon: "img/scip-java.png", + footerIcon: "img/scip-java.png", favicon: "img/favicon.ico", /* colors for website */ @@ -46,7 +46,7 @@ const siteConfig = { usePrism: ['scala'], // This copyright info is used in /core/Footer.js and blog rss/atom feeds. - copyright: `Copyright © ${new Date().getFullYear()} lsif-java developers`, + copyright: `Copyright © ${new Date().getFullYear()} scip-java developers`, highlight: { // Highlight.js theme to use for syntax highlighting in code blocks @@ -57,8 +57,8 @@ const siteConfig = { onPageNav: "separate", /* Open Graph and Twitter card images */ - ogImage: "img/lsif-java.png", - twitterImage: "img/lsif-java.png", + ogImage: "img/scip-java.png", + twitterImage: "img/scip-java.png", editUrl: `${repoUrl}/edit/main/docs/`, diff --git a/website/static/img/lsif-java.png b/website/static/img/scip-java.png similarity index 100% rename from website/static/img/lsif-java.png rename to website/static/img/scip-java.png