What are filters?

Filters are generally programs which read some input text from standard input, perform some modifications on it, and write the modified text to standard output. While a single filter can be used individually, they are frequently strung together to form a pipeline. Boxes is such a filter program.

Some text editors support filters, which is to say they offer a way to let filter programs make changes to the text being edited. By pressing a key, the user tells the editor to start the filter program (e.g. boxes) and feed it the lines of text selected in the editor. Those lines are subsequently replaced with the output from the filter program.

Here’s an example using boxes:

Imagine your editor (in this case, it’s Vim) shows the following C code (it could really be any text):

text before filtering

Now you mark some of the lines …

text to be filtered is marked

… and press the key which makes vim call the filter program boxes:

after the filter was applied

The marked lines have been fed to boxes and replaced by the output of boxes. The same mechanism works for box removal - or anything else you can find a filter for.

Please see the editor integration section in the boxes docs for more info on how to make your editor work with boxes.