zerolag
a highly efficient text buffer for editors with very large buffers
npm i zerolag
|
pnpm add zerolag
|
yarn add zerolag
|
Examples
# basic
# view source
example/basic.ts
import { add, sub } from 'zerolag'
console.log(add(1, 2)) // => 3
console.log(sub(2, 5)) // => -3
# jsx
# view source
example/jsx.tsx
const h = (zerolag.args: unknown[]) => args
console.log(<foo bar="baz" />)
// => [ 'foo', { bar: 'baz' } ]
API
} } }
# appendLog
(type, offsets, text)
# emit
(name, a, b, c, d)
# getLineRangeOffsets
(range)
# range
[ number, number ]
getLineRangeOffsets(range) =>
- [ number, number ]
# getLongestLineLength
(withLineNumber)
# withLineNumber
boolean
getLongestLineLength(withLineNumber) =>
- number | {
}
# getOffsetRangeText
(offsetRange)
# offsetRange
[ number, number ]
getOffsetRangeText(offsetRange) =>
- string
# insertTextAtPoint
(p, text, noLog)
# wordAreaAtPoint
(p, inclusive)
# emit
(name, a, b, c, d)
# findOffsetInPart
(offset, part)
# removeBelowOffset
(offset, part)
# shiftIndex
(startIndex, shift)
# gridRound
(b, a)
create(names, flags, fn) =>
- RegExp
# join
(regexps, flags)
# parse
(s, regexp, filter)
parse(s, regexp, filter) =>
-
RegExpExecArray []
# isValid
(text, offset, lastIndex)
# isValidRange
(range, segment, close)
# insert
(offset, value, level)
# replace
(steps, node, value)
# splice
(s, _offset, value, level)
# emit
(name, a, b, c, d)
# update
(range, text, shift)
Contributing
All contributions are welcome!