Initial public release of Warp.

Repo-Sync-Origin: warpdotdev/warp-internal@12af1d983b
This commit is contained in:
David Stern
2026-04-28 08:43:33 -05:00
commit 0dbd3d567a
4982 changed files with 1431549 additions and 0 deletions
@@ -0,0 +1,208 @@
use super::*;
#[test]
fn vim_inner_paragraph_empty_buffer() {
assert_eq!(vim_inner_paragraph("", 0), Some(0.into()..0.into()));
assert_eq!(vim_inner_paragraph("", 1), None);
}
#[test]
fn vim_a_paragraph_empty_buffer() {
assert_eq!(vim_a_paragraph("", 0), Some(0.into()..0.into()));
assert_eq!(vim_a_paragraph("", 1), None);
}
#[test]
fn vim_inner_paragraph_single_paragraph() {
let text = "foo bar\nnext line\n";
for (i, ch) in text.chars().enumerate() {
if ch != '\n' {
let range = vim_inner_paragraph(text, i).unwrap();
assert_eq!(range, 0.into()..text.len().into());
}
}
}
#[test]
fn vim_a_paragraph_single_paragraph() {
let text = "foo bar\nnext line\n";
for (i, ch) in text.chars().enumerate() {
if ch != '\n' {
let range = vim_a_paragraph(text, i).unwrap();
assert_eq!(range, 0.into()..text.len().into());
}
}
}
#[test]
fn vim_inner_paragraph_two_paragraphs() {
let text = "first line\nof first para\n\nsecond para line\n";
let blank_index = text.find("\n\n").unwrap();
let second_start = blank_index + 2;
for (i, ch) in text.chars().take(blank_index).enumerate() {
if ch != '\n' {
let range = vim_inner_paragraph(text, i).unwrap();
assert_eq!(range, 0.into()..blank_index.into());
}
}
for (i, ch) in text.chars().enumerate().skip(second_start) {
if ch != '\n' {
let range = vim_inner_paragraph(text, i).unwrap();
assert_eq!(range, second_start.into()..text.len().into());
}
}
}
#[test]
fn vim_inner_paragraph_three_paragraphs() {
let text = "first\n\nsecond\n\nthird\n";
let (first_blank, second_blank) = {
let mut it = text.match_indices("\n\n");
(it.next().unwrap().0, it.next().unwrap().0)
};
let second_start = first_blank + 2;
let third_start = second_blank + 2;
for (i, ch) in text.chars().take(first_blank).enumerate() {
if ch != '\n' {
let range = vim_inner_paragraph(text, i).unwrap();
assert_eq!(range, 0.into()..first_blank.into());
}
}
for (i, ch) in text
.chars()
.enumerate()
.skip(second_start)
.take(second_blank - second_start)
{
if ch != '\n' {
let range = vim_inner_paragraph(text, i).unwrap();
assert_eq!(range, second_start.into()..second_blank.into());
}
}
for (i, ch) in text.chars().enumerate().skip(third_start) {
if ch != '\n' {
let range = vim_inner_paragraph(text, i).unwrap();
assert_eq!(range, third_start.into()..text.len().into());
}
}
}
#[test]
fn vim_a_paragraph_two_paragraphs() {
let text = "first line\nof first para\n\nsecond para line\n";
let blank_index = text.find("\n\n").unwrap();
for (i, ch) in text.chars().take(blank_index).enumerate() {
if ch != '\n' {
let range = vim_a_paragraph(text, i).unwrap();
assert_eq!(range, 0.into()..(blank_index + 1).into());
}
}
let second_range_start = (blank_index + 1).into();
let second_range_end = text.len().into();
let second_start = blank_index + 2;
for (i, ch) in text.chars().enumerate().skip(second_start) {
if ch != '\n' {
let range = vim_a_paragraph(text, i).unwrap();
assert_eq!(range, second_range_start..second_range_end);
}
}
}
#[test]
fn vim_a_paragraph_three_paragraphs() {
let text = "first\n\nsecond\n\nthird\n";
let (first_blank, second_blank) = {
let mut it = text.match_indices("\n\n");
(it.next().unwrap().0, it.next().unwrap().0)
};
let second_start = first_blank + 2;
let third_start = second_blank + 2;
for (i, ch) in text.chars().take(first_blank).enumerate() {
if ch != '\n' {
let range = vim_a_paragraph(text, i).unwrap();
assert_eq!(range, 0.into()..(first_blank + 1).into());
}
}
for (i, ch) in text
.chars()
.enumerate()
.skip(second_start)
.take(second_blank - second_start)
{
if ch != '\n' {
let range = vim_a_paragraph(text, i).unwrap();
assert_eq!(range, second_start.into()..(second_blank + 1).into());
}
}
let last_range = (second_blank + 1).into()..text.len().into();
for (i, ch) in text.chars().enumerate().skip(third_start) {
if ch != '\n' {
let range = vim_a_paragraph(text, i).unwrap();
assert_eq!(range, last_range);
}
}
}
#[test]
fn vim_inner_paragraph_blank_lines() {
let text = "first\n\n\nsecond\n";
for offset in 5..=7 {
let range = vim_inner_paragraph(text, offset).unwrap();
assert_eq!(range, 6.into()..7.into());
}
}
#[test]
fn vim_a_paragraph_blank_lines() {
let text = "first\n\n\nsecond\n";
for offset in 5..=7 {
let range = vim_a_paragraph(text, offset).unwrap();
assert_eq!(range, 6.into()..text.len().into());
}
}
#[test]
fn vim_a_paragraph_many_trailing_blank_lines() {
let text = "first\n\n\nsecond\n\n\n\n\nthird";
for offset in 0..=4 {
let range = vim_a_paragraph(text, offset).unwrap();
assert_eq!(range, 0.into()..7.into());
}
for offset in 8..=13 {
let range = vim_a_paragraph(text, offset).unwrap();
assert_eq!(range, 8.into()..18.into());
}
for offset in 19..=23 {
let range = vim_a_paragraph(text, offset).unwrap();
assert_eq!(range, 15.into()..24.into());
}
}
#[test]
fn vim_paragraph_lines_with_spaces_included() {
// Despite being invisible, a line containing spaces still counts as "content".
let text = "first\n\n \nsecond";
let range = vim_a_paragraph(text, 3).unwrap();
assert_eq!(range, 0.into()..6.into());
let range = vim_a_paragraph(text, 14).unwrap();
assert_eq!(range, 6.into()..18.into());
}