All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added a
!!
operator to tell the compiler to skip compilation for a line
- Complete rewrite of the parsing system and major changes to the internal API
- Made the Build & Test workflow use a matrix
- Fixed problems related to tagging functions in subdirectories
0.7.1 - September 1, 2021
- Fixed an old documentation link in the Cargo.toml
0.7.0 - September 1, 2021
- Added filenames and line/column numbers to error messages
- Added new functions to the public library
- Converted the project into a Rust library with a binary, allowing Rust devs to make their own frontend for Databind
- Changed cargo commands to use
--locked
flag to make sure the lockfile is enforced - Made the CLI use the public library instead of modules and
use crate::
- Changed structure of src/ directory to separate CLI and library files
0.6.4 - August 19, 2021
- Fix the
sbop
keyword not outputting valid code - Fix the modulus operator for scoreboard player operations (
%=
) being replaced with an assignment operator (=
)
0.6.3 - August 12, 2021
- Tests to properly use
--release
flag - Empty lines replace in compiler
- A stack overflow caused by escaping double quotes in macro calls
0.6.2 - August 10, 2021
- Change Cargo.toml
exclude
toinclude
- Update paths that trigger Build And Run workflow
- Fix NewLine token not being added with CRLF line endings
0.6.1 - August 8, 2021
- Update docs link in Cargo.toml
- Remove an unneeded condition from release.yaml
- Fix a problem with docs in macros.rst
0.6.0 - August 3, 2021
- Macros to allow complex functions in Databind
- If/else statements
- A file to define global variables
- Functionality to merge function tags defined in JSON files with Databind function tags
- A page with Folder Structure info to docs
- Remove original
!def
(Replaced by macros)
- Fix some lines missing newlines at the end
0.5.0 - July 18, 2021
%
character to escape keywords
- Change both keywords
endfunc
andendwhile
toend
- Update docs formatting to add indentation inside functions and while loops
- Fix multiple
!def
's not working
0.4.0 - July 1, 2021
- Rewrite the tokenizer
- Remove preceding
:
from all keywords
0.3.0 - June 26, 2021
- Shorthand to delete variables/objectives (
:delvar
or:delobj
) - Add shorthand for scoreboard operations (
:sbop
and:gvar
)
- Update syntax for
:sobj
- Remove nmaintained
random_var_names
andvar_display_names
settings
- Fix integers not being able to be negative
- Fix the only allowed assignment operator for objectives being
=
0.2.3 - June 25, 2021
- New integration tests
- Update some old integration tests
- Fix output folder for
databind
with no args - Fix incorrect function tagging
- Fix comments breaking tags
- Fix while loop problems
0.2.2 - June 24, 2021
- Support for datapack subfolders
- Update incorrect version in some places
- Update incorrect license
0.2.1 - June 23, 2021
- Fix a bug where running
databind
with no arguments would try to unwrap aNone
value
0.2.0 - June 23, 2021
databind create
subcommand to create new projects- Ability to run
databind
with no arguments in a Databind project to compile :tag
keyword to tag functions in-code:def
keyword to define text replacements- While loops
- Option to choose output file/folder
0.1.0 - June 4, 2021
- Multiple function definitions in a single file
- Shorthand to call functions without namespace prefix (
func_1
instead ofnamespace:func_1
) - Transpile single files or entire folders
- Variable definitions via scoreboards
- Shorthand for objective creation
- Shorthand for testing variables in
if
commands - Configuration options