Releases: patrickomatic/csv-plus-plus
Releases · patrickomatic/csv-plus-plus
v0.8.0
v0.8.0
Features
- Slashes are no longer needed to separate cell options
[[text=bold halign=left]]is now equivalent to[[text=bold/halign=left]].
- Support for multi-line cells
- Support for text wrapping cell option (i.e.
[[wrap=clip]]to clip the text in a cell) - csv++ User Guide
- Switch to custom CSV parser (
csvp) - Switch from CBOR to bincode for object file serialization
Breaking Changes
- Added enum variant
Error::CsvParseError - Renamed
OptionstoConfig - Modules made crate-private:
BorderSideBorderStyleCellConfigFillHorizontalAlignNumberFormatOutputCompilationTargetTextFormatVerticalAlign
Deprecated Features
- You should no longer use
/to separate cell options
v0.7.0
v0.7.0
Features
- Build a statically-linked
x86_64-unknown-linux-muslandaarch64-unknown-linux-muslfor people
who are on a system with an outdated glibc - Quoting rules for single and double quoted strings have changed to align with OpenFormula and how
popular spreadsheet programs do it. Rather than using a backslash like"a \"quote\""or
'a \'quote\''you just double the character. So"a ""quote"""and'a ''quote'''. - Builds for more platforms:
- aarch64-unknown-linux-musl
- i686-unknown-linux-gnu
- i686-unknown-linux-musl
- i686-pc-windows-gnu
- x86_64-unknown-linux-musl
- Switch from
a1_notationcrate toa1
Bugfixes
- Fix a bug causing double-quoted strings (i.e,
""foo"")
Breaking Changes
- Double-quoted strings now use double-quote (
"") to escape a single-quote. Previously it used
\"to escape.
v0.6.1
Features
- Allow for a single infinite fill but any number of finite fills before and after it
- Support
%postfix operator - Support
=comparison operator - Support
+prefix operator
Bugfixes
- Fix bug where styles weren't being applied to Excel files
- Fix a bug where the spreadsheet was not getting re-compiled if a .csvpo file existed
- Fix quoted
in_listvalidations likevalidate=in_list('foo bar', 'bar foo') - Fix
</<=/>/>=lexing - Don't allow (throw an error) if there are multiple infinite fills
Breaking Changes
- Operator precedence has changed to match the OpenFormula spec
Dependency Updates
umya-spreadsheetto v1.2.0env_loggerto v0.11.1
v0.6.0
v0.6.0
Features
- Eval rows in parallel
- Support for backing up on Google Sheets
- Dates, times and datetimes are now tz-unaware
Bugfixes
- Fix fills being evaluated every time they're loaded from a .csvpo cache (and blowing up the
resulting spreadsheet) - The main module will always use it's csvpo cache when possible
- Fixes a potential overflow when calculating fills past row 1000
Breaking Changes
DateTimeno longer supports a variant with fixed TZ offset- Various functions on
Fillmade crate-private - Removed
Error::ObjectCodeErrorvariant
v0.5.1
v0.5.1
Features
- Generate and use
csvpocache files (increase compilation speed) - Ugprade
umya-spreadsheetto v1.1.1 - Deprecate
Error::ObjectCodeError
Bugfixes
- Fix leaking of namespaces from dependencies making their way into the dependent. Only exported
symbols should have been propagated - Fix evaluation of variables dependent on variables from another file
- Fix lexing of the
fnkeyword in places likefn fn_namewhere the "fn" part is repeated twice
v0.5.0
Features
usestatement for importing code from other files- Using object code files (.csvpo) during compilation
- Allow for
.characters in a function name - Support various levels of verbosity by repeating -v (i.e., -vvvv)
- Improved error messages for syntax errors in cells
- Use a proper logger (env_logger) and tune output according to the -v[vvv] flag
- Code coverage reporting
- Tooling to run benchmarks
Bugfixes
- Fix unfriendly error when calling a function with the wrong number of arguments
Breaking (Language) Changes
- All builtin variables & functions are removed. All of the functionality provided by them could be done with native spreadsheet functions anyway. And we're adding support for module loading which means they could just be implemented as a lib instead.
- Rename
![[expand]]to![[fill]]and all related code references - Rename
[[format]]to[[text]] - Rename
TemplatetoModule - Rename
CodeSectiontoScope - Rename
Error::ObjectWriteErrortoError::ObjectCodeError Template.write_object_filemade crate-privateError::EvalErrorchanged
v0.4.1
Features
- data validations via the
validate=...syntax - Google Sheets API access via user accounts (which previously required service accounts)
- More clear and colored error messages throughout
- Dates assume local TZ if not specified
Bugfixes
- Variables defined on rows (i.e.,
![[var=this_row]],=this_row) weren't being evaluated to the correct results - Expands were incorrectly filling into the rows below them, only for excel
- More consistent parsing of dates
- Fix line count in syntax error messages
Breaking Changes
- Various parser classes made crate-private
v0.4.0
v0.4.0
Features
- Ability to reference variables defined in an expand, outside of an expand. If they're referenced inside an expand they'll resolve to their exact location, otherwise they resolve to the range represented by that column in the range.
- Support for
![[var=...]]both in and outside expands. They'll reference either a row (if defined outside an expand), a row relative to the expand (if defined and referenced in an expand) or the entire row range of the expand (if defined in an expand and referenced outside it). - Much better error reporting - pretty much everything now includes some contextual code highlighting
- Excel:
notesupport - More useful
-v/--verboseoutput
Bugfixes
- Fix cellabove/cellbelow/celladjacent to all take columns (A/B/C/etc)
- Reading and writing CSV with inconsistent column lengths would fail
- Trim leading and trailing spaces on input CSV
- Excel: Fix workbooks being created with an empty first sheet
- Excel: Fix background/foreground coloring
Breaking Changes
- A lot of functions and structs made
pub(crate)privacy - Error classes significantly refactored
v0.3.0
Complete rewrite in Rust. This provides:
- hand-written parser which gives us better error messaging
- much faster
- better types
- short-hand notation for modifiers
- can build binaries for various platforms
0.2.0
Breaking changes:
- Remove the
$$operator - now you can just reference anything and it will either be resolved or left alone in the final input.
Features:
- Proper merging of values in the spreadsheet being written to. Imagine you compile a spreadsheet then insert some values, then edit the csvpp template and compile again - in the previous versions we'd drop the inserted values and now it plays nicely and preserves them.
- More generous spacing in the CSV section - reflected in the example in the README, you can now have spacing between the separators allowing you to line things up visually