Compare commits

..
Author SHA1 Message Date
l0ng-ai eb258b0912 fix(java): list dependencies' implementations after the project's in Go to Implementation
Go to Implementation on a type or method declared in a dependency (Runnable, a Spring interface) listed only the project's implementations once the project had one. openidea.java.implementations (java-usages 1.5.0) now answers {locations, complete}: complete when the type is declared in the sources, which no dependency implements. Its search also covers the project's Kotlin classes attached by the Kotlin bridge.

When the answer is not complete, ide-lsp passes those found first to the new lsp_goto_implementation channel and runs the standard request for the rest. The chooser opens with the project's implementations ("1 found, searching…") and fills in the dependencies' when the search ends; closing it cancels the search. Gutter markers keep the source-only answer for project types.
2026-11-06 08:14:57 +08:00
52 changed files with 43 additions and 46 deletions

No files matched your search

+1 -1
View File
@@ -32,7 +32,7 @@ use std::path::{Component, Path, PathBuf};
pub const MANIFEST_FILE: &str = "plugin.toml";
/// The plugin API (engine) version this host implements.
pub const ENGINE_VERSION: &str = "1.2.0";
pub const ENGINE_VERSION: &str = "1.1.0";
/// The 0.1 API, still accepted for contribution-only packages and 0.1 components.
pub const LEGACY_API: &str = "0.1";
/// Marketplace categories, in the order they are shown.
+1 -1
View File
@@ -33,7 +33,7 @@ use views_bindings::exports::openidea::plugin::view_provider as wit_view;
use views_bindings::openidea::plugin::view_types as wit_vt;
/// The API version of the world above, `major.minor` of [`host_api`].
pub const API_VERSION: &str = "1.2";
pub const API_VERSION: &str = "1.1";
const EPOCH_TICK: Duration = Duration::from_millis(10);
pub(crate) const MAX_TEXT: usize = 1 << 20;
pub(crate) const MAX_TITLE: usize = 256;
Binary file not shown.
@@ -1 +1 @@
60d67ab91d3c42127500481510c43d829e07babcab872f94a6189d27c901234a
455d848dd27f242bb3e9bf420558cbc8c200853f51ada3d481635ac9771803f3
Binary file not shown.
@@ -1 +1 @@
6e9aab775c231987a73d2e424f8cd389e429f525327fac4f5aba550ebc53afe6
f7e1ae06a90460ed1d2319bfc51f848654df145fa451f3d959b32776b2b25ce3
Binary file not shown.
@@ -1 +1 @@
ab066ebab16ba774c2f649a72469bcd25aaa1ffaee77f70ea67395ea26ddee02
12973c7ca7330fc50eb16718fd769d412401b5a92bd014f4804659e4a272122f
+2 -2
View File
@@ -5,8 +5,8 @@ wit_bindgen::generate!({
inline: "
package fixture:misbehave;
world misbehave {
include openidea:plugin/plugin-syntax@1.2.0;
export openidea:plugin/providers@1.2.0;
include openidea:plugin/plugin-syntax@1.1.0;
export openidea:plugin/providers@1.1.0;
}
",
path: "../../../../../wit",
-3
View File
@@ -193,10 +193,8 @@ pub fn compose_container_root(config_json: &str, service: &str, root: &Path) ->
#[cfg(test)]
mod tests {
use super::*;
#[cfg(unix)]
use std::path::PathBuf;
#[cfg(unix)]
fn config(command: &str, args: &[&str]) -> RunConfig {
RunConfig {
id: "app".into(),
@@ -214,7 +212,6 @@ mod tests {
}
}
#[cfg(unix)]
fn run<'a>(
target: &'a RunTarget,
endpoint: &'a BTreeMap<String, String>,
+1 -1
View File
@@ -37,7 +37,7 @@ sdk/rust/openidea-plugin/ # the Rust SDK (host API, Plugin trait, mock host)
crates/ide-plugin/tests/fixtures/ # test plugins: hello, jobs, language-toy, misbehave
```
The plugin API is defined in [`wit/`](../wit/) (`openidea:plugin@1.2.0`, world
The plugin API is defined in [`wit/`](../wit/) (`openidea:plugin@1.1.0`, world
`plugin`).
## 1. Quick start
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
f884ceac7f40567a2e817d3b40830a7b0da2f9d5ffa519bf67d4ff667c0f7da0
12c9f58ab05321fa3966a0179c085e2972db278adf20b917b50f30ce048aa67d
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
4c81f468df030724df26a6b57370d8ea4958a3cf8d3a40b23458ed3b2dd32505
69273e1ddfd2fff9f49c11d4fbdc60a771f8e3befe440e1623c2ab97469aa250
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
266430921ca7b2271f452c2e8bc4893bd5c1d1516f8081a4ab09950ede9a586b
74167252b0e306f94eb00ac9b467a5f30c373b9f15e223b21afa71c67c1dec0b
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
91f3f03a81acd298b26c539003a96d0e87a88139a2ec6b9ade85e9ca2e89d1a1
66e7f43eaf7bbadf1c5c817c6ce8da3adca0543ce5e12550440b4039b235581d
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
e7cdaeb4f482f698026542c1545f3a1f4734f78f7e9ca0a83cdbc805669c2c7c
04cd70714c6bac560783492b3bd31d22f7056b9d8809df14163be935785dd114
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
ebdcbc36896ab0d545946a95befbc5aeb2b127d615c4754b0077975c53ee0286
674f439626f08e931842c0c108a57c899ea38d2b5b2de38debd3b4b46feb5777
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
786fd1808d786dd6abd2671b567db1e37075c08610ac4715c93c0624dbe396d6
ee40771fe778d4af1f762c1512155ea375ee3ed238390c65a5461b077fed6f8b
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
500b934eafbe02493b8d2b42f779281edd00b899f70ed8732de3edc377ceca63
b9cc6408738acd7a89ff76632d91ec49680c7a5ff6bee292efa77d182003ec25
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
2ab43c67c74bd9f8d8ef788b8dca2f6f7288e79ad53663dc51624f36730e52f7
6c9c35547a7ce1c240be83bbb30418a28ab8e2e4034401205e35ec2dee87abbf
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
db60e5fccb72de283a772176052bf659a4ebff11bfb93f634dd513ec878837a7
56af2a764333e739d53fb5c8346835b4796cf76611c36b4685a428b49cc4eae2
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
fa82a8596bd6505c769c0125ea26cef9af08535b36f650ddc4a353eb50866cea
ac745c20866ed959252778116af068d7264187a53df64e2de090522b7ba5b722
+6 -6
View File
@@ -89,7 +89,7 @@ pub mod providers_bindings {
export_macro_name: "__export_editor_providers_world",
default_bindings_module: "openidea_plugin::providers_bindings",
with: {
"openidea:plugin/types@1.2.0": crate::bindings::openidea::plugin::types,
"openidea:plugin/types@1.1.0": crate::bindings::openidea::plugin::types,
},
});
}
@@ -106,16 +106,16 @@ pub mod views_bindings {
export_macro_name: "__export_views_world",
default_bindings_module: "openidea_plugin::views_bindings",
with: {
"openidea:plugin/types@1.2.0": crate::bindings::openidea::plugin::types,
"openidea:plugin/workspace@1.2.0": crate::bindings::openidea::plugin::workspace,
"openidea:plugin/editor@1.2.0": crate::bindings::openidea::plugin::editor,
"openidea:plugin/invocation@1.2.0": crate::bindings::openidea::plugin::invocation,
"openidea:plugin/types@1.1.0": crate::bindings::openidea::plugin::types,
"openidea:plugin/workspace@1.1.0": crate::bindings::openidea::plugin::workspace,
"openidea:plugin/editor@1.1.0": crate::bindings::openidea::plugin::editor,
"openidea:plugin/invocation@1.1.0": crate::bindings::openidea::plugin::invocation,
},
});
}
/// The plugin API version this SDK targets.
pub const API_VERSION: &str = "1.2";
pub const API_VERSION: &str = "1.1";
/// A plugin. One instance lives as long as the plugin's Wasm instance (until
/// it is disabled, crashes or is reclaimed when idle).
+1 -1
View File
@@ -1,4 +1,4 @@
package openidea:plugin@1.2.0;
package openidea:plugin@1.1.0;
/// Workbench events, delivered in batches to `event-handler.handle`.
interface events {
+1 -1
View File
@@ -1,4 +1,4 @@
package openidea:plugin@1.2.0;
package openidea:plugin@1.1.0;
interface lifecycle {
use types.{context, error};
+1 -1
View File
@@ -1,4 +1,4 @@
package openidea:plugin@1.2.0;
package openidea:plugin@1.1.0;
/// Writes to the IDE log, tagged with the plugin id.
interface log {
+1 -1
View File
@@ -1,4 +1,4 @@
package openidea:plugin@1.2.0;
package openidea:plugin@1.1.0;
/// Problems in files, shown in the editor and the Problems view.
interface diagnostics {
+1 -1
View File
@@ -7,7 +7,7 @@
/// or processes beyond WASI's clocks and randomness; everything else goes
/// through the imports below, gated by the capabilities granted in
/// `plugin.toml` (a missing one returns `error::denied`).
package openidea:plugin@1.2.0;
package openidea:plugin@1.1.0;
world plugin {
import log;
+1 -1
View File
@@ -1,4 +1,4 @@
package openidea:plugin@1.2.0;
package openidea:plugin@1.1.0;
/// Editor features a plugin provides for the languages it declares under
/// `[[contributes.providers]]` (the host calls only declared kinds). They run
+1 -1
View File
@@ -1,4 +1,4 @@
package openidea:plugin@1.2.0;
package openidea:plugin@1.1.0;
/// Shared types. Positions are 0-based lines and UTF-16 code unit columns,
/// as in the editor and LSP.
+1 -1
View File
@@ -1,4 +1,4 @@
package openidea:plugin@1.2.0;
package openidea:plugin@1.1.0;
/// Declarative views: tool windows declared
/// under `[[contributes.views]]` and custom editors under
+1 -1
View File
@@ -1,4 +1,4 @@
package openidea:plugin@1.2.0;
package openidea:plugin@1.1.0;
interface workspace {
use types.{error};
+1 -1
View File
@@ -1,4 +1,4 @@
package openidea:plugin@1.2.0;
package openidea:plugin@1.1.0;
/// Workbench events, delivered in batches to `event-handler.handle`.
interface events {
+1 -1
View File
@@ -1,4 +1,4 @@
package openidea:plugin@1.2.0;
package openidea:plugin@1.1.0;
interface lifecycle {
use types.{context, error};
+1 -1
View File
@@ -1,4 +1,4 @@
package openidea:plugin@1.2.0;
package openidea:plugin@1.1.0;
/// Writes to the IDE log, tagged with the plugin id.
interface log {
+1 -1
View File
@@ -1,4 +1,4 @@
package openidea:plugin@1.2.0;
package openidea:plugin@1.1.0;
/// Problems in files, shown in the editor and the Problems view.
interface diagnostics {
+1 -1
View File
@@ -7,7 +7,7 @@
/// or processes beyond WASI's clocks and randomness; everything else goes
/// through the imports below, gated by the capabilities granted in
/// `plugin.toml` (a missing one returns `error::denied`).
package openidea:plugin@1.2.0;
package openidea:plugin@1.1.0;
world plugin {
import log;
+1 -1
View File
@@ -1,4 +1,4 @@
package openidea:plugin@1.2.0;
package openidea:plugin@1.1.0;
/// Editor features a plugin provides for the languages it declares under
/// `[[contributes.providers]]` (the host calls only declared kinds). They run
+1 -1
View File
@@ -1,4 +1,4 @@
package openidea:plugin@1.2.0;
package openidea:plugin@1.1.0;
/// Shared types. Positions are 0-based lines and UTF-16 code unit columns,
/// as in the editor and LSP.
+1 -1
View File
@@ -1,4 +1,4 @@
package openidea:plugin@1.2.0;
package openidea:plugin@1.1.0;
/// Declarative views: tool windows declared
/// under `[[contributes.views]]` and custom editors under
+1 -1
View File
@@ -1,4 +1,4 @@
package openidea:plugin@1.2.0;
package openidea:plugin@1.1.0;
interface workspace {
use types.{error};