vim: Add 'gf' command, make files cmd-clickable (#16534)
Release Notes: - vim: Added `gf` command to open files under the cursor. - Filenames can now be `cmd`/`ctrl`-clicked, which opens them. TODOs: - [x] `main_test.go` <-- works - [x] `./my-pkg/my_pkg.go` <-- works - [x] `../go.mod` <-- works - [x] `my-pkg/my_pkg.go` <-- works - [x] `my-pkg/subpkg/subpkg_test.go` <-- works - [x] `file\ with\ space\ in\ it.txt` <-- works - [x] `"file\ with\ space\ in\ it.txt"` <-- works - [x] `"main_test.go"` <-- works - [x] `/Users/thorstenball/.vimrc` <-- works, but only locally - [x] `~/.vimrc` <--works, but only locally - [x] Get it working over collab - [x] Get hover links working Demo: https://github.com/user-attachments/assets/26af7f3b-c392-4aaf-849a-95d6c3b00067 Collab demo: https://github.com/user-attachments/assets/272598bd-0e82-4556-8f9c-ba53d3a95682
This commit is contained in:
parent
1e39d407c2
commit
db0c1fd592
9 changed files with 579 additions and 43 deletions
|
@ -55,7 +55,9 @@ pub use persistence::{
|
|||
WorkspaceDb, DB as WORKSPACE_DB,
|
||||
};
|
||||
use postage::stream::Stream;
|
||||
use project::{DirectoryLister, Project, ProjectEntryId, ProjectPath, Worktree, WorktreeId};
|
||||
use project::{
|
||||
DirectoryLister, Project, ProjectEntryId, ProjectPath, ResolvedPath, Worktree, WorktreeId,
|
||||
};
|
||||
use serde::Deserialize;
|
||||
use session::AppSession;
|
||||
use settings::Settings;
|
||||
|
@ -2015,6 +2017,17 @@ impl Workspace {
|
|||
})
|
||||
}
|
||||
|
||||
pub fn open_resolved_path(
|
||||
&mut self,
|
||||
path: ResolvedPath,
|
||||
cx: &mut ViewContext<Self>,
|
||||
) -> Task<anyhow::Result<Box<dyn ItemHandle>>> {
|
||||
match path {
|
||||
ResolvedPath::ProjectPath(project_path) => self.open_path(project_path, None, true, cx),
|
||||
ResolvedPath::AbsPath(path) => self.open_abs_path(path, false, cx),
|
||||
}
|
||||
}
|
||||
|
||||
fn add_folder_to_project(&mut self, _: &AddFolderToProject, cx: &mut ViewContext<Self>) {
|
||||
let project = self.project.read(cx);
|
||||
if project.is_remote() && project.dev_server_project_id().is_none() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue