![Fluent Assertions Faces Backlash After Abandoning Open Source Licensing](https://cdn.sanity.io/images/cgdhsj6q/production/98cc622027c44eed628584f02cb3b6e79be011c7-1500x1500.webp?w=400&fit=max&auto=format)
Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
vfile-location
Advanced tools
vfile utility to convert between positional (line and column-based) and offset (range-based) locations
The vfile-location npm package is a utility tool for working with virtual file objects, specifically designed to map positions in a virtual file to line and column-based locations. This is particularly useful when dealing with transformations or manipulations of text where tracking positions within the original and modified content is necessary.
Location Mapping
This feature allows you to convert between line and column-based locations and absolute positions within a file's content. The `toOffset` method converts a line and column object to a zero-based offset, and the `toPoint` method converts an offset back to a line and column object.
const vfileLocation = require('vfile-location');
const text = 'Hello\nWorld';
const location = vfileLocation(text);
// Get position from line and column
const offset = location.toOffset({line: 2, column: 1}); // Returns 7
// Get line and column from position
const point = location.toPoint(offset); // Returns {line: 2, column: 1}
The 'line-column' npm package provides similar functionality to vfile-location, allowing users to find the line and column position from a character index and vice versa. It differs in its API design and additional options for customization, such as setting the origin index.
While primarily focused on creating text-based columns for display, 'columnify' can also be used to manage text positions similarly to vfile-location. It is more specialized in creating aligned text output but includes position tracking as part of its layout capabilities.
Convert between positional (line and column-based) and offsets (range-based) locations in a virtual file.
npm:
npm install vfile-location
var vfile = require('vfile')
var vfileLocation = require('vfile-location')
var location = vfileLocation(vfile('foo\nbar\nbaz'))
var offset = location.toOffset({line: 3, column: 3}) // => 10
location.toPoint(offset) // => {line: 3, column: 3, offset: 10}
location = vfileLocation(doc)
Get transform functions for the given doc
(string
) or file
.
Returns an object with toOffset
and toPoint
.
location.toOffset(point)
Get the offset
(number
) for a line and column-based point
in the
bound file.
Returns -1
when given invalid or out of bounds input.
location.toPoint(offset)
Get the line and column-based point
for offset
in the bound file.
See contributing.md
in vfile/.github
for ways to
get started.
See support.md
for ways to get help.
This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.
FAQs
vfile utility to convert between positional (line and column-based) and offset (range-based) locations
The npm package vfile-location receives a total of 3,747,628 weekly downloads. As such, vfile-location popularity was classified as popular.
We found that vfile-location demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.