test_that("enclosed_by_quotes works as expected", {
enclosed <- function(text, col) {
.Call("enclosed_by_quotes", PACKAGE = "languageserver", text, col)
}
expect_false(enclosed("hello_world", 4))
expect_true(enclosed("'hello_world", 4))
expect_true(enclosed("\"hello_world", 4))
expect_true(enclosed("R\"(hello_world", 4))
expect_true(enclosed("r\"(hello_world", 4))
expect_true(enclosed("R\"-(hello_world", 5))
expect_true(enclosed("r\"-(hello_world", 5))
expect_true(enclosed("\"\\\"hello_world", 4))
expect_false(enclosed("\"a\"hello_world", 4))
expect_false(enclosed("R\"(a)\"hello_world", 7))
expect_false(enclosed("R\"-(a)-\"hello_world", 9))
expect_true(enclosed("R\"-(a)--\"hello_world", 9))
expect_true(enclosed("R\"-(a)\"hello_world", 9))
expect_true(enclosed("'\\'hello_world", 4))
expect_false(enclosed("'a'hello_world", 4))
#410
expect_true(enclosed("fun('free', )", 8))
expect_false(enclosed("fun('free', )", 9))
})
test_that("find_unbalanced_bracket works as expected", {
bsearch <- function(content, row, column) {
.Call("find_unbalanced_bracket",
PACKAGE = "languageserver",
content, row, column, TRUE
)
}
expect_equal(bsearch("foo(xy", 0, 5)[[1]], c(0, 3))
expect_equal(bsearch("foo(xy(abc)", 0, 5)[[1]], c(0, 3))
expect_equal(bsearch("foobar", 0, 3)[[1]], c(-1, -1))
expect_equal(bsearch("foo(bar)abc", 0, 7)[[1]], c(-1, -1))
expect_equal(bsearch("foo(bar)abc", 0, 8)[[1]], c(-1, -1))
expect_equal(bsearch("foo(xy(abc)", 0, 6)[[1]], c(0, 6))
expect_equal(bsearch("foo(xy(abc)", 0, 7)[[1]], c(0, 6))
expect_equal(bsearch("foo(xy(abc), param2", 0, 12)[[1]], c(0, 3))
expect_equal(bsearch("foo(#xyz(bar", 0, 10)[[1]], c(0, 3))
expect_equal(bsearch("foo('xyz(bar", 0, 10)[[1]], c(0, 3))
expect_equal(bsearch("foo(\"xyz(bar", 0, 10)[[1]], c(0, 3))
expect_equal(bsearch("foo('xyz', bar", 0, 10)[[1]], c(0, 3))
expect_equal(bsearch("foo(\"xyz\", bar", 0, 10)[[1]], c(0, 3))
expect_equal(bsearch("foo(R\"(x\"yz)\", bar", 0, 15)[[1]], c(0, 3))
expect_equal(bsearch("foo(r\"(x\"yz)\", bar", 0, 15)[[1]], c(0, 3))
expect_equal(bsearch("foo(R\"(x\"yz)\", bar", 0, 15)[[1]], c(0, 3))
expect_equal(bsearch("foo(r\"(x\"yz)\", bar", 0, 15)[[1]], c(0, 3))
expect_equal(bsearch("foo(\"(x\"yz)\", bar", 0, 15)[[1]], c(-1, -1))
expect_equal(bsearch("foo(\"(x\"yz)\", bar", 0, 15)[[1]], c(-1, -1))
expect_equal(bsearch("foo(\"(x\"yz)\", bar", 0, 15)[[1]], c(-1, -1))
expect_equal(bsearch("foo(\"(x\"yz)\", bar", 0, 15)[[1]], c(-1, -1))
expect_equal(bsearch("𐐀𐐀𐐀(𐐀𐐀𐐀", 0, 5)[[1]], c(0, 3))
# multiline
expect_equal(bsearch(c("foo(", "xyz"), 1, 3)[[1]], c(0, 3))
expect_equal(bsearch(c("foo( # (", "xyz"), 1, 1)[[1]], c(0, 3))
expect_equal(bsearch(c("foo( # \"", "xyz"), 1, 2)[[1]], c(0, 3))
expect_equal(bsearch(c("foo( # '", "xyz"), 1, 3)[[1]], c(0, 3))
expect_equal(bsearch(c("foo({ ", "xyz"), 1, 3)[[2]], "{")
expect_equal(bsearch(c("foo({} ", "xyz"), 1, 3)[[1]], c(0, 3))
expect_equal(bsearch(c("foo({ ", "}, xyz"), 1, 3)[[1]], c(0, 3))
expect_equal(bsearch(c("foo(( ", "), xyz"), 1, 3)[[1]], c(0, 3))
# issue #530
expect_equal(bsearch(c("if (sum()) ", "xyz"), 0, 7)[[1]], c(0, 7))
expect_equal(bsearch(c("} if (sum()) ", "xyz"), 0, 9)[[1]], c(0, 9))
# other brackets
expect_equal(bsearch("foo[xy", 0, 5), list(c(0, 3), "["))
expect_equal(bsearch("foo{xy", 0, 5), list(c(0, 3), "{"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.