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 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