mirror of
https://github.com/ankitects/anki.git
synced 2025-09-24 08:46:37 -04:00
Anki is a smart spaced repetition flashcard program
![]() - Introduced a new transact() method that wraps the return value in a separate struct that describes the changes that were made. - Changes are now gathered from the undo log, so we don't need to guess at what was changed - eg if update_note() is called with identical note contents, no changes are returned. Card changes will only be set if cards were actually generated by the update_note() call, and tag will only be set if a new tag was added. - mw.perform_op() has been updated to expect the op to return the changes, or a structure with the changes in it, and it will use them to fire the change hook, instead of fetching the changes from undo_status(), so there is no risk of race conditions. - the various calls to mw.perform_op() have been split into separate files like card_ops.py. Aside from making the code cleaner, this works around a rather annoying issue with mypy. Because we run it with no_strict_optional, mypy is happy to accept an operation that returns None, despite the type signature saying it requires changes to be returned. Turning no_strict_optional on for the whole codebase is not practical at the moment, but we can enable it for individual files. Still todo: - The cursor keeps moving back to the start of a field when typing - we need to ignore the refresh hook when we are the initiator. - The busy cursor icon should probably be delayed a few hundreds ms. - Still need to think about a nicer way of handling saveNow() - op_made_changes(), op_affects_study_queue() might be better embedded as properties in the object instead |
||
---|---|---|
.buildkite | ||
.github/ISSUE_TEMPLATE | ||
cargo | ||
docs | ||
ftl | ||
pip | ||
platforms | ||
pylib | ||
qt | ||
rslib | ||
scripts | ||
ts | ||
.bazelignore | ||
.bazelrc | ||
.bazelversion | ||
.gitattributes | ||
.gitignore | ||
bazel.bat | ||
BUILD.bazel | ||
Cargo.lock | ||
Cargo.toml | ||
CONTRIBUTORS | ||
defs.bzl | ||
late_deps.bzl | ||
LICENSE | ||
pkgkey.asc | ||
protobuf.bzl | ||
python.bzl | ||
README.md | ||
repos.bzl | ||
run | ||
run.bat | ||
WORKSPACE |
Anki
This repo contains the source code for the computer version of Anki.
If you'd like to try development builds of Anki but don't feel comfortable building the code, please see https://betas.ankiweb.net/#/
For more information on building, please see Development.