mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 01:34:25 +00:00 
			
		
		
		
	refactor(plines.c): update outdated comments (#24264)
This commit is contained in:
		@@ -94,8 +94,8 @@ int plines_win_nofill(win_T *wp, linenr_T lnum, bool winheight)
 | 
			
		||||
  return lines;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// @Return number of window lines physical line "lnum" will occupy in window
 | 
			
		||||
/// "wp".  Does not care about folding, 'wrap' or 'diff'.
 | 
			
		||||
/// Get number of window lines physical line "lnum" will occupy in window "wp".
 | 
			
		||||
/// Does not care about folding, 'wrap' or filler lines.
 | 
			
		||||
int plines_win_nofold(win_T *wp, linenr_T lnum)
 | 
			
		||||
{
 | 
			
		||||
  char *s = ml_get_buf(wp->w_buffer, lnum, false);
 | 
			
		||||
@@ -179,10 +179,12 @@ int plines_win_col(win_T *wp, linenr_T lnum, long column)
 | 
			
		||||
  return lines;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Get the number of screen lines lnum takes up. This takes care of
 | 
			
		||||
/// both folds and topfill, and limits to the current window height.
 | 
			
		||||
/// Get the number of screen lines buffer line "lnum" will take in window "wp".
 | 
			
		||||
/// This takes care of both folds and topfill.
 | 
			
		||||
///
 | 
			
		||||
/// @param[in]  wp       window line is in
 | 
			
		||||
/// XXX: Because of topfill, this only makes sense when lnum >= wp->w_topline.
 | 
			
		||||
///
 | 
			
		||||
/// @param[in]  wp       window the line is in
 | 
			
		||||
/// @param[in]  lnum     line number
 | 
			
		||||
/// @param[out] nextp    if not NULL, the line after a fold
 | 
			
		||||
/// @param[out] foldedp  if not NULL, whether lnum is on a fold
 | 
			
		||||
@@ -201,6 +203,16 @@ int plines_win_full(win_T *wp, linenr_T lnum, linenr_T *const nextp, bool *const
 | 
			
		||||
          (lnum == wp->w_topline ? wp->w_topfill : win_get_fill(wp, lnum)));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Get the number of screen lines a range of buffer lines will take in window "wp".
 | 
			
		||||
/// This takes care of both folds and topfill.
 | 
			
		||||
///
 | 
			
		||||
/// XXX: Because of topfill, this only makes sense when first >= wp->w_topline.
 | 
			
		||||
/// XXX: This limits the size of each line to current window height.
 | 
			
		||||
///
 | 
			
		||||
/// @param first  first line number
 | 
			
		||||
/// @param last   last line number
 | 
			
		||||
///
 | 
			
		||||
/// @see win_text_height
 | 
			
		||||
int plines_m_win(win_T *wp, linenr_T first, linenr_T last)
 | 
			
		||||
{
 | 
			
		||||
  int count = 0;
 | 
			
		||||
@@ -282,7 +294,7 @@ unsigned win_linetabsize(win_T *wp, linenr_T lnum, char *line, colnr_T len)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Return the number of cells line "lnum" of window "wp" will take on the
 | 
			
		||||
/// screen, taking into account the size of a tab and text properties.
 | 
			
		||||
/// screen, taking into account the size of a tab and inline virtual text.
 | 
			
		||||
unsigned linetabsize(win_T *wp, linenr_T lnum)
 | 
			
		||||
{
 | 
			
		||||
  return win_linetabsize(wp, lnum, ml_get_buf(wp->w_buffer, lnum, false), (colnr_T)MAXCOL);
 | 
			
		||||
@@ -294,7 +306,7 @@ void win_linetabsize_cts(chartabsize_T *cts, colnr_T len)
 | 
			
		||||
       MB_PTR_ADV(cts->cts_ptr)) {
 | 
			
		||||
    cts->cts_vcol += win_lbr_chartabsize(cts, NULL);
 | 
			
		||||
  }
 | 
			
		||||
  // check for a virtual text after the end of the line
 | 
			
		||||
  // check for inline virtual text after the end of the line
 | 
			
		||||
  if (len == MAXCOL && cts->cts_has_virt_text && *cts->cts_ptr == NUL) {
 | 
			
		||||
    (void)win_lbr_chartabsize(cts, NULL);
 | 
			
		||||
    cts->cts_vcol += cts->cts_cur_text_width_left + cts->cts_cur_text_width_right;
 | 
			
		||||
@@ -333,9 +345,7 @@ void clear_chartabsize_arg(chartabsize_T *cts)
 | 
			
		||||
 | 
			
		||||
/// like win_chartabsize(), but also check for line breaks on the screen
 | 
			
		||||
///
 | 
			
		||||
/// @param line
 | 
			
		||||
/// @param s
 | 
			
		||||
/// @param col
 | 
			
		||||
/// @param cts
 | 
			
		||||
///
 | 
			
		||||
/// @return The number of characters taken up on the screen.
 | 
			
		||||
int lbr_chartabsize(chartabsize_T *cts)
 | 
			
		||||
@@ -352,9 +362,7 @@ int lbr_chartabsize(chartabsize_T *cts)
 | 
			
		||||
 | 
			
		||||
/// Call lbr_chartabsize() and advance the pointer.
 | 
			
		||||
///
 | 
			
		||||
/// @param line
 | 
			
		||||
/// @param s
 | 
			
		||||
/// @param col
 | 
			
		||||
/// @param cts
 | 
			
		||||
///
 | 
			
		||||
/// @return The number of characters take up on the screen.
 | 
			
		||||
int lbr_chartabsize_adv(chartabsize_T *cts)
 | 
			
		||||
@@ -399,7 +407,7 @@ int win_lbr_chartabsize(chartabsize_T *cts, int *headp)
 | 
			
		||||
    return win_chartabsize(wp, s, vcol);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // First get normal size, without 'linebreak' or virtual text
 | 
			
		||||
  // First get normal size, without 'linebreak' or inline virtual text
 | 
			
		||||
  int size = win_chartabsize(wp, s, vcol);
 | 
			
		||||
 | 
			
		||||
  if (cts->cts_has_virt_text) {
 | 
			
		||||
@@ -561,9 +569,7 @@ int win_lbr_chartabsize(chartabsize_T *cts, int *headp)
 | 
			
		||||
/// 'wrap' is on.  This means we need to check for a double-byte character that
 | 
			
		||||
/// doesn't fit at the end of the screen line.
 | 
			
		||||
///
 | 
			
		||||
/// @param wp
 | 
			
		||||
/// @param s
 | 
			
		||||
/// @param col
 | 
			
		||||
/// @param cts
 | 
			
		||||
/// @param headp
 | 
			
		||||
///
 | 
			
		||||
/// @return The number of characters take up on the screen.
 | 
			
		||||
@@ -592,8 +598,18 @@ static int win_nolbr_chartabsize(chartabsize_T *cts, int *headp)
 | 
			
		||||
  return n;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int64_t win_get_text_height(win_T *const wp, const linenr_T first, const linenr_T last,
 | 
			
		||||
                            const int64_t start_vcol, const int64_t end_vcol)
 | 
			
		||||
/// Get the number of screen lines a range of text will take in window "wp".
 | 
			
		||||
///
 | 
			
		||||
/// @param start_lnum  first line number
 | 
			
		||||
/// @param start_vcol  >= 0: virtual column on "start_lnum" where counting starts,
 | 
			
		||||
///                          rounded down to full screen lines
 | 
			
		||||
///                    < 0:  count a full "start_lnum", including filler lines above
 | 
			
		||||
/// @param end_lnum    last line number
 | 
			
		||||
/// @param end_vcol    >= 0: virtual column on "end_lnum" where counting ends,
 | 
			
		||||
///                          rounded up to full screen lines
 | 
			
		||||
///                    < 0:  count a full "end_lnum", not including fillers lines below
 | 
			
		||||
int64_t win_text_height(win_T *const wp, const linenr_T start_lnum, const int64_t start_vcol,
 | 
			
		||||
                        const linenr_T end_lnum, const int64_t end_vcol)
 | 
			
		||||
{
 | 
			
		||||
  int width1 = 0;
 | 
			
		||||
  int width2 = 0;
 | 
			
		||||
@@ -606,7 +622,7 @@ int64_t win_get_text_height(win_T *const wp, const linenr_T first, const linenr_
 | 
			
		||||
 | 
			
		||||
  int64_t size = 0;
 | 
			
		||||
  int64_t height_nofill = 0;
 | 
			
		||||
  linenr_T lnum = first;
 | 
			
		||||
  linenr_T lnum = start_lnum;
 | 
			
		||||
 | 
			
		||||
  if (start_vcol >= 0) {
 | 
			
		||||
    linenr_T lnum_next = lnum;
 | 
			
		||||
@@ -620,7 +636,7 @@ int64_t win_get_text_height(win_T *const wp, const linenr_T first, const linenr_
 | 
			
		||||
    lnum = lnum_next + 1;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  while (lnum <= last) {
 | 
			
		||||
  while (lnum <= end_lnum) {
 | 
			
		||||
    linenr_T lnum_next = lnum;
 | 
			
		||||
    const bool folded = hasFoldingWin(wp, lnum, &lnum, &lnum_next, true, NULL);
 | 
			
		||||
    height_nofill = folded ? 1 : plines_win_nofill(wp, lnum, false);
 | 
			
		||||
 
 | 
			
		||||
@@ -1052,19 +1052,19 @@ void ui_ext_win_viewport(win_T *wp)
 | 
			
		||||
        || (cur_topline == last_topline && wp->w_skipcol < last_skipcol)) {
 | 
			
		||||
      if (last_topline > 0 && cur_botline < last_topline) {
 | 
			
		||||
        // Scrolling too many lines: only give an approximate "scroll_delta".
 | 
			
		||||
        delta -= win_get_text_height(wp, cur_topline, cur_botline, wp->w_skipcol, 0);
 | 
			
		||||
        delta -= win_text_height(wp, cur_topline, wp->w_skipcol, cur_botline, 0);
 | 
			
		||||
        delta -= last_topline - cur_botline;
 | 
			
		||||
      } else {
 | 
			
		||||
        delta -= win_get_text_height(wp, cur_topline, last_topline, wp->w_skipcol, last_skipcol);
 | 
			
		||||
        delta -= win_text_height(wp, cur_topline, wp->w_skipcol, last_topline, last_skipcol);
 | 
			
		||||
      }
 | 
			
		||||
    } else if (cur_topline > last_topline
 | 
			
		||||
               || (cur_topline == last_topline && wp->w_skipcol > last_skipcol)) {
 | 
			
		||||
      if (last_botline > 0 && cur_topline > last_botline) {
 | 
			
		||||
        // Scrolling too many lines: only give an approximate "scroll_delta".
 | 
			
		||||
        delta += win_get_text_height(wp, last_topline, last_botline, last_skipcol, 0);
 | 
			
		||||
        delta += win_text_height(wp, last_topline, last_skipcol, last_botline, 0);
 | 
			
		||||
        delta += cur_topline - last_botline;
 | 
			
		||||
      } else {
 | 
			
		||||
        delta += win_get_text_height(wp, last_topline, cur_topline, last_skipcol, wp->w_skipcol);
 | 
			
		||||
        delta += win_text_height(wp, last_topline, last_skipcol, cur_topline, wp->w_skipcol);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    delta += last_topfill;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user