editor: go to pos where stack pointer is located
This commit is contained in:
parent
be9dc5802a
commit
132198323c
2 changed files with 20 additions and 4 deletions
|
@ -1,9 +1,16 @@
|
|||
use helix_core::syntax;
|
||||
use helix_core::{syntax, Selection};
|
||||
use helix_dap::Payload;
|
||||
use helix_lsp::{lsp, util::lsp_pos_to_pos, LspProgressMap};
|
||||
use helix_view::{theme, Editor};
|
||||
|
||||
use crate::{args::Args, compositor::Compositor, config::Config, job::Jobs, ui};
|
||||
use crate::{
|
||||
args::Args,
|
||||
commands::{align_view, Align},
|
||||
compositor::Compositor,
|
||||
config::Config,
|
||||
job::Jobs,
|
||||
ui,
|
||||
};
|
||||
|
||||
use log::error;
|
||||
|
||||
|
@ -300,13 +307,22 @@ impl Application {
|
|||
Some(helix_dap::Source {
|
||||
path: Some(src), ..
|
||||
}),
|
||||
line,
|
||||
column,
|
||||
..
|
||||
}) = &debugger.stack_pointer
|
||||
{
|
||||
let path = src.clone();
|
||||
let line = *line;
|
||||
let column = *column;
|
||||
self.editor
|
||||
.open(path, helix_view::editor::Action::Replace)
|
||||
.unwrap();
|
||||
|
||||
let (view, doc) = current!(self.editor);
|
||||
let pos = doc.text().line_to_char(line - 1) + column;
|
||||
doc.set_selection(view.id, Selection::point(pos));
|
||||
align_view(doc, view, Align::Center);
|
||||
}
|
||||
self.editor.set_status(status);
|
||||
}
|
||||
|
|
|
@ -98,13 +98,13 @@ impl<'a> Context<'a> {
|
|||
}
|
||||
}
|
||||
|
||||
enum Align {
|
||||
pub enum Align {
|
||||
Top,
|
||||
Center,
|
||||
Bottom,
|
||||
}
|
||||
|
||||
fn align_view(doc: &Document, view: &mut View, align: Align) {
|
||||
pub fn align_view(doc: &Document, view: &mut View, align: Align) {
|
||||
let pos = doc
|
||||
.selection(view.id)
|
||||
.primary()
|
||||
|
|
Loading…
Add table
Reference in a new issue