pub struct View {
pub offset_row: usize,
pub offset_col: usize,
pub show_line_numbers: bool,
pub wrap_mode: bool,
pub screen_rows: usize,
pub screen_cols: usize,
/* private fields */
}Fields§
§offset_row: usize§offset_col: usize§show_line_numbers: bool§wrap_mode: bool§screen_rows: usize§screen_cols: usizeImplementations§
Source§impl View
impl View
Sourcepub fn new_simple(rows: usize, cols: usize) -> View
pub fn new_simple(rows: usize, cols: usize) -> View
Sourcepub fn invalidate_cache(&mut self)
pub fn invalidate_cache(&mut self)
完全清空緩存(用於大範圍變更或視窗調整)
Sourcepub fn invalidate_line(&mut self, logical_row: usize)
pub fn invalidate_line(&mut self, logical_row: usize)
部分失效:僅清除指定邏輯行的緩存(用於單行編輯)
Sourcepub fn invalidate_lines(&mut self, start_row: usize, end_row: usize)
pub fn invalidate_lines(&mut self, start_row: usize, end_row: usize)
部分失效:清除指定範圍的緩存(用於多行編輯)
pub fn update_size(&mut self)
pub fn render( &mut self, buffer: &RopeBuffer, cursor: &Cursor, selection: Option<&Selection>, message: Option<&str>, ) -> Result<(), Error>
pub fn scroll_if_needed( &mut self, cursor: &Cursor, buffer: &RopeBuffer, has_debug_ruler: bool, )
Sourcepub fn scroll_horizontal_if_needed(
&mut self,
cursor: &Cursor,
buffer: &RopeBuffer,
)
pub fn scroll_horizontal_if_needed( &mut self, cursor: &Cursor, buffer: &RopeBuffer, )
水平滾動(單行模式專用)
pub fn toggle_line_numbers(&mut self)
Sourcepub fn toggle_display_mode(&mut self)
pub fn toggle_display_mode(&mut self)
切換顯示模式(單行/多行),不影響行號顯示
Sourcepub fn get_display_mode_name(&self) -> &'static str
pub fn get_display_mode_name(&self) -> &'static str
獲取當前顯示模式名稱
Sourcepub fn get_available_width(&self, buffer: &RopeBuffer) -> usize
pub fn get_available_width(&self, buffer: &RopeBuffer) -> usize
獲取可用於顯示內容的寬度(扣除行號寬度)
Sourcepub fn calculate_visual_lines_for_row(
&self,
buffer: &RopeBuffer,
row: usize,
) -> Vec<String>
pub fn calculate_visual_lines_for_row( &self, buffer: &RopeBuffer, row: usize, ) -> Vec<String>
計算指定邏輯行的視覺行分割(給其他模組用,不依賴 cache 也可以)
Sourcepub fn logical_col_to_visual_col(&self, line: &str, logical_col: usize) -> usize
pub fn logical_col_to_visual_col(&self, line: &str, logical_col: usize) -> usize
將邏輯列轉換為視覺列(考慮 Tab 展開和字符寬度)
Sourcepub fn visual_to_logical_col(
&self,
buffer: &RopeBuffer,
row: usize,
visual_line_index: usize,
visual_col: usize,
) -> usize
pub fn visual_to_logical_col( &self, buffer: &RopeBuffer, row: usize, visual_line_index: usize, visual_col: usize, ) -> usize
從視覺行索引和視覺列轉換為邏輯列
Sourcepub fn get_effective_screen_rows(&self, has_debug_ruler: bool) -> usize
pub fn get_effective_screen_rows(&self, has_debug_ruler: bool) -> usize
實際可用於顯示文本的螢幕行數(扣除 debug 標尺)
Sourcepub fn get_cursor_visual_position(
&self,
cursor: &Cursor,
buffer: &RopeBuffer,
) -> (usize, usize)
pub fn get_cursor_visual_position( &self, cursor: &Cursor, buffer: &RopeBuffer, ) -> (usize, usize)
獲取cursor的視覺位置(螢幕座標)
Auto Trait Implementations§
impl Freeze for View
impl RefUnwindSafe for View
impl Send for View
impl Sync for View
impl Unpin for View
impl UnsafeUnpin for View
impl UnwindSafe for View
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more