Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package zk for openSUSE:Factory checked in at 2025-03-20 19:25:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/zk (Old) and /work/SRC/openSUSE:Factory/.zk.new.2696 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "zk" Thu Mar 20 19:25:44 2025 rev:11 rq:1254660 version:0.15.0 Changes: -------- --- /work/SRC/openSUSE:Factory/zk/zk.changes 2025-02-23 16:26:51.062960830 +0100 +++ /work/SRC/openSUSE:Factory/.zk.new.2696/zk.changes 2025-03-20 19:26:15.036759069 +0100 @@ -1,0 +2,12 @@ +Thu Mar 20 09:08:47 UTC 2025 - Andrea Manzini <[email protected]> + +- Update to version 0.15.0 + * fixed LSP crashes when editing code fences and/or working in text files + with code fences + * new feature to set a group path "by name", in that any directory with the + same name can share the same group rules, no matter how deep in the + notebook. See references below. + +- added _service file to help vendor dependencies + +------------------------------------------------------------------- Old: ---- vendor.tar.zst zk-0.14.2.tar.gz New: ---- _service vendor.tar.gz zk-0.15.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ zk.spec ++++++ --- /var/tmp/diff_new_pack.EhaOqe/_old 2025-03-20 19:26:15.552780428 +0100 +++ /var/tmp/diff_new_pack.EhaOqe/_new 2025-03-20 19:26:15.556780594 +0100 @@ -17,14 +17,14 @@ Name: zk -Version: 0.14.2 +Version: 0.15.0 Release: 0 Summary: Plain text note-taking assistant for markdown License: BSD-2-Clause Group: System/Shells URL: https://github.com/zk-org/zk Source0: https://github.com/zk-org/zk/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz -Source1: vendor.tar.zst +Source1: vendor.tar.gz # PATCH-FIX-UPSTREAM fix_test.patch -- based on commit e3c5784fb84a792491724fe4cc1f26e2c9d01b60 BuildRequires: c_compiler BuildRequires: zstd ++++++ _service ++++++ <services> <service name="go_modules" mode="disabled"> </service> </services> ++++++ zk-0.14.2.tar.gz -> zk-0.15.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zk-0.14.2/.github/workflows/build-docs.yml new/zk-0.15.0/.github/workflows/build-docs.yml --- old/zk-0.14.2/.github/workflows/build-docs.yml 2025-02-07 21:57:31.000000000 +0100 +++ new/zk-0.15.0/.github/workflows/build-docs.yml 2025-03-18 09:07:48.000000000 +0100 @@ -1,29 +1,21 @@ # Build the Sphinx docs on PR to catch any issues before merging. -# Deployment happens on push to main with gh-pages.yml +# Deployment happens on push/merge to main with gh-pages.yml name: Build Docs on: pull_request: branches: [main] - paths: - - docs/** - - -concurrency: - group: "pages" - cancel-in-progress: false + paths: [docs/**] jobs: pages: - runs-on: ubuntu-20.04 - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - permissions: - pages: write - id-token: write + runs-on: ubuntu-latest steps: - - id: deployment - uses: sphinx-notes/pages@v3 - with: - publish: false + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Install requirements + run: pip install -r docs/requirements.txt + - name: Build docs + run: make zkdocs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zk-0.14.2/.github/workflows/gh-pages.yml new/zk-0.15.0/.github/workflows/gh-pages.yml --- old/zk-0.14.2/.github/workflows/gh-pages.yml 2025-02-07 21:57:31.000000000 +0100 +++ new/zk-0.15.0/.github/workflows/gh-pages.yml 2025-03-18 09:07:48.000000000 +0100 @@ -5,6 +5,7 @@ on: push: branches: [main] + paths: [docs/**] concurrency: group: "pages" @@ -12,7 +13,7 @@ jobs: pages: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zk-0.14.2/CHANGELOG.md new/zk-0.15.0/CHANGELOG.md --- old/zk-0.14.2/CHANGELOG.md 2025-02-07 21:57:31.000000000 +0100 +++ new/zk-0.15.0/CHANGELOG.md 2025-03-18 09:07:48.000000000 +0100 @@ -6,6 +6,21 @@ ... +## 0.15.0 + +## Added + +- Set group path rule for any directory with the same name (by @mcDevnagh, 09d0621) + - See docs: `./docs/config/config-group.md` + +## Fixed + +- LSP crashes when adjusting code fences (by @dandeandean, f4d3dc7) +- Editor not opening via zk commands on Windows (by @apraga and @mcDevnagh, 64ad7f4) +- Ctrl-E no longer created notes from fzf picker (by @gyorb, e939463) +- zk.list.tags LSP error message correction (by @mcDevnagh, f581447) + + ## 0.14.2 ## Added diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zk-0.14.2/CONTRIBUTING.md new/zk-0.15.0/CONTRIBUTING.md --- old/zk-0.14.2/CONTRIBUTING.md 2025-02-07 21:57:31.000000000 +0100 +++ new/zk-0.15.0/CONTRIBUTING.md 2025-03-18 09:07:48.000000000 +0100 @@ -4,8 +4,8 @@ ### Building the project -It is recommended to use the `Makefile` for compiling the project, as the `go` command -requires a few parameters. +It is recommended to use the `Makefile` for compiling the project, as the `go` +command requires a few parameters. ```shell make build @@ -17,13 +17,14 @@ CGO_ENABLED=1 GOARCH=arm64 go build -tags "fts5" -ldflags "-X=main.Version=`git describe --tags --match v[0-9]* 2> /dev/null` -X=main.Build=`git rev-parse --short HEAD`" ``` -- `CGO_ENABLED=1` enables CGO, which is required by the `mattn/go-sqlite3` dependency. +- `CGO_ENABLED=1` enables CGO, which is required by the `mattn/go-sqlite3` + dependency. - `GOARCH=arm64` is only required for Apple Silicon chips. -- `-tags "fts5"` enables the FTS option with `mattn/go-sqlite3`, which handles much of the - magic behind `zk`'s `--match` filtering option. +- `-tags "fts5"` enables the FTS option with `mattn/go-sqlite3`, which handles + much of the magic behind `zk`'s `--match` filtering option. - ``-ldflags "-X=main.Version=`git describe --tags --match v[0-9]* 2> /dev/null` -X=main.Build=`git rev-parse --short HEAD`"`` - will automatically set `zk`'s build and version numbers using the latest Git tag and - commit SHA. + will automatically set `zk`'s build and version numbers using the latest Git + tag and commit SHA. ### Automated tests @@ -32,55 +33,67 @@ #### Unit tests -Unit tests are using the standard [Go testing library](https://pkg.go.dev/testing). To -execute them, use the command `make test`. +Unit tests are using the standard +[Go testing library](https://pkg.go.dev/testing). To execute them, use the +command `make test`. -They are ideal for testing parsing output or individual API edge cases and minutiae. +They are ideal for testing parsing output or individual API edge cases and +minutiae. #### End-to-end tests Most of `zk`'s functionality is tested with functional tests ran with -[`tesh`](https://github.com/mickael-menu/tesh), which you can execute with `make tesh` (or -`make teshb`, to debug whitespaces changes). +[`tesh`](https://github.com/mickael-menu/tesh), which you can execute with +`make tesh` (or `make teshb`, to debug whitespaces changes). -When addressing a GitHub issue, it's a good idea to begin by creating a `tesh` file in -`tests/issue-XXX.tesh`. If a starting notebook state is required, it can be added under -`tests/fixtures`. +When addressing a GitHub issue, it's a good idea to begin by creating a `tesh` +file in `tests/issue-XXX.tesh`. If a starting notebook state is required, it can +be added under `tests/fixtures`. If you modify the output of `zk`, you may disrupt some `tesh` files. You can use `make tesh-update` to automatically update them with the correct output. ### CI workflows -Several GitHub action workflows are executed when pull requests are merged or releases are -created. +Several GitHub action workflows are executed when pull requests are merged or +releases are created. -- `.github/workflows/build.yml` checks that the project can be built and the tests still - pass. -- `.github/workflows/build-binaries.yml` builds zk binaries for all platforms and uplaods - artifacts. +- `.github/workflows/build.yml` checks that the project can be built and the + tests still pass. +- `.github/workflows/build-binaries.yml` builds zk binaries for all platforms + and uploads them. - `.github/workflows/codeql.yml` runs static analysis to vet code quality. -- `.github/workflows/gh-pages.yml` deploy the documentation files to GitHub Pages. -- `.github/workflows/release.yml` submits a new version to Homebrew when a Git version tag - is created. -- `.github/workflows/triage.yml` automatically tags old issues and PRs as staled. +- `.github/workflows/build-docs.yml` builds the docs site. +- `.github/workflows/gh-pages.yml` deploys the documentation files to GitHub + Pages. +- `.github/workflows/release.yml` runs the `build-binaries` workflow, downloads + its artifacts and then attaches them to a new draft release. +- `.github/workflows/triage.yml` automatically tags old issues and PRs as + staled. ## Releasing a new version -When `zk` is ready to be released, you can update the `CHANGELOG.md` -([for example](https://github.com/zk-org/zk/commit/ea4457ad671aa85a6b15747460c6f2c9ad61bf73)) -and create a new Git version tag (for example `v0.13.0`). Make sure you follow the -[Semantic Versioning](https://semver.org) scheme. +When `zk` is ready to be released, follow these steps in order: -If you create the git tag via the command line, and push it, then the +1. Update the `CHANGELOG.md` + ([for example](https://github.com/zk-org/zk/commit/ea4457ad671aa85a6b15747460c6f2c9ad61bf73)) +2. Update the docs version in `docs/conf.py` +3. Commit the changes above with `git commit` (no `-m`). In the first line of + the commit, provide "Release <the-version>". List any necessary detail on + subsequent lines. +4. Finally, create a new Git version tag with `git tag -a <version>`(syntax + example: `v0.13.0`). Make sure you follow the + [Semantic Versioning](https://semver.org) scheme. + +If you create the git tag via the command line, and push it (`git tags --push`), then the [release action](.github/workflows/release.yml) will be triggered. This in turn -calls the [build-binaries action](.github/workflows/build-binaries.yml), creates a -release on GitHub and attaches the built binaries. +calls the [build-binaries action](.github/workflows/build-binaries.yml), creates +a _draft_ release on GitHub and attaches the built binaries. Alternatively, you can manually create a release via the GitHub interface, also -creating a release tag. Then you would run the [build-binaries -action](.github/workflows/build-binaries.yml) manually, and download and -attach the binaries manually. +creating a release tag. Then you would run the +[build-binaries action](.github/workflows/build-binaries.yml) manually, and +again manually download and attach the binaries. In both cases the description of the release can be edited after the release is created (i.e, adding or editing the changelog). @@ -90,34 +103,36 @@ We're using [Sphinx](https://www.sphinx-doc.org/en/master/) as our documentation framework, and the [furo](https://pradyunsg.me/furo/quickstart/) theme. -To install: +To install, from the repository root run: ```sh -pip install Sphinx furo +pip install -r docs/requirements.txt ``` -`docs/` is the root level of the documentation site. [index.rst](./docs/index.rst) is the -landing page. +`docs/` is the root level of the documentation site. +[index.rst](./docs/index.rst) is the landing page. -Documentation is written in markdown, with the exception of pages which render TOCs. These -pages are written in +Documentation is written in markdown, with the exception of pages which render +TOCs. These pages are written in [reStructuredText (rst)](https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html), -as Myst (which does the parsing from Markdown to rst within Sphinx's back end), does not -handle TOCs yet (as far as I'm (@tjex) aware). +as Myst (which does the parsing from Markdown to rst within Sphinx's back end), +does not handle TOCs yet (as far as I'm (@tjex) aware). ### Formatting -There is a `.prettierrc` at the root of the git repo. If you are using a different -formatter, feel free to add its config file to this repo with the same settings. +There is a `.prettierrc` at the root of the git repo. If you are using a +different formatter, feel free to add its config file to this repo with the same +settings. ### Local Preview -Sphinx generates static html. So previewing locally is easy. -Simply build the site with `make`: +Sphinx generates static html. So previewing locally is easy. Simply build the +site with `make`: ```sh make zkdocs ``` + This will create a folder `[docs-build/]` containing the static site (and is of course ignored by git, so you can do whatever you like in that folder). @@ -127,7 +142,7 @@ [sphinx-autobuild](https://pypi.org/project/sphinx-autobuild/) to emulate hot reloading / live server style development.\ Otherwise you can just manually rebuild with `make zkdocs` each time you want to -preview your changes. +preview your changes. ## Deploying diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zk-0.14.2/docs/conf.py new/zk-0.15.0/docs/conf.py --- old/zk-0.14.2/docs/conf.py 2025-02-07 21:57:31.000000000 +0100 +++ new/zk-0.15.0/docs/conf.py 2025-03-18 09:07:48.000000000 +0100 @@ -9,7 +9,7 @@ project = "zk" copyright = "2024, zk-org" author = "zk-org" -release = "0.14.1" +release = "0.15.0" # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration @@ -25,6 +25,8 @@ # -- Options for HTML output ------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output +master_doc = "index" html_theme = "furo" +html_title = "zk : a plain text note-taking assistant" # html_static_path = ["_static"] -master_doc = "index" +# templates_path = ["_templates"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zk-0.14.2/docs/config/config-group.md new/zk-0.15.0/docs/config/config-group.md --- old/zk-0.14.2/docs/config/config-group.md 2025-02-07 21:57:31.000000000 +0100 +++ new/zk-0.15.0/docs/config/config-group.md 2025-03-18 09:07:48.000000000 +0100 @@ -21,19 +21,18 @@ ``` You can also use -[glob patterns](https://en.wikipedia.org/wiki/Glob_(programming)) in `paths`. +[glob patterns](https://en.wikipedia.org/wiki/Glob_(programming)) in `paths`: ```toml [group.journal] +# Apply to child directories of "journal". paths = ["journal/*"] -``` -If you omit `paths`, the directory named after the group will be inferred. Note -the double quotes when using spaces or slashes for subdirectories. +# Apply to all sub-directories of "journal" (i.e, recursively). +paths = ["journal/**"] -```toml -# This will automatically apply to the `citations/web` directory -[group."citations/web"] +# Apply to all directories named "journal". +paths = ["**/journal"] ``` ## Overriding note configuration and extra variables diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zk-0.14.2/docs/index.rst new/zk-0.15.0/docs/index.rst --- old/zk-0.14.2/docs/index.rst 2025-02-07 21:57:31.000000000 +0100 +++ new/zk-0.15.0/docs/index.rst 2025-03-18 09:07:48.000000000 +0100 @@ -16,10 +16,12 @@ notes/index tips/index -`zk` is a plain text note-taking tool that leverages the power of the command line. +`zk` is a plain text note-taking assistant that leverages the power of the command line. Install as below and then... :doc:`get zettling <tips/getting-started>`! +This site always represents the latest state of the documentation. + Installation ============ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zk-0.14.2/docs/requirements.txt new/zk-0.15.0/docs/requirements.txt --- old/zk-0.14.2/docs/requirements.txt 2025-02-07 21:57:31.000000000 +0100 +++ new/zk-0.15.0/docs/requirements.txt 2025-03-18 09:07:48.000000000 +0100 @@ -1,2 +1,3 @@ +Sphinx furo myst-parser diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zk-0.14.2/docs/tips/editors-integration.md new/zk-0.15.0/docs/tips/editors-integration.md --- old/zk-0.14.2/docs/tips/editors-integration.md 2025-02-07 21:57:31.000000000 +0100 +++ new/zk-0.15.0/docs/tips/editors-integration.md 2025-03-18 09:07:48.000000000 +0100 @@ -3,7 +3,7 @@ There are several extensions available to integrate `zk` in your favorite editor: -- [`zk-nvim`](https://github.com/zk-org/zk-nvim) for Neovim 0.5+ +- [`zk-nvim`](https://github.com/zk-org/zk-nvim) for Neovim. - [`zk-vscode`](https://github.com/zk-org/zk-vscode) for Visual Studio Code ## Language Server Protocol @@ -84,7 +84,7 @@ </details> -##### Neovim 0.5 built-in LSP client +##### Neovim built-in LSP client Using [`nvim-lspconfig`](https://github.com/neovim/nvim-lspconfig): @@ -231,34 +231,39 @@ 1. A path to any file or directory in the notebook, to locate it. 2. <details><summary>A dictionary of additional options (click to expand)</summary> -| Key | Type | Required? | Description | -| ---------------- | ------------ | --------- | --------------------------------------------------------------------------------------------------------- | -| `select` | string array | Yes | List of note fields to return<sup>1</sup> | -| `hrefs` | string array | No | Find notes matching the given path, including its descendants | -| `limit` | integer | No | Limit the number of notes found | -| `match` | string array | No | Terms to search for in the notes | -| `exactMatch` | boolean | No | (deprecated: use `matchStrategy`) Search for exact occurrences of the `match` argument (case insensitive) | -| `matchStrategy` | string | No | Specify match strategy, which may be "fts" (default), "exact" or "re" | -| `excludeHrefs` | string array | No | Ignore notes matching the given path, including its descendants | -| `tags` | string array | No | Find notes tagged with the given tags | -| `mention` | string array | No | Find notes mentioning the title of the given ones | -| `mentionedBy` | string array | No | Find notes whose title is mentioned in the given ones | -| `linkTo` | string array | No | Find notes which are linking to the given ones | -| `linkedBy` | string array | No | Find notes which are linked by the given ones | -| `orphan` | boolean | No | Find notes which are not linked by any other note | -| `tagless` | boolean | No | Find notes which have no tags | -| `related` | string array | No | Find notes which might be related to the given ones | -| `maxDistance` | integer | No | Maximum distance between two linked notes | -| `recursive` | boolean | No | Follow links recursively | -| `created` | string | No | Find notes created on the given date | -| `createdBefore` | string | No | Find notes created before the given date | -| `createdAfter` | string | No | Find notes created after the given date | -| `modified` | string | No | Find notes modified on the given date | -| `modifiedBefore` | string | No | Find notes modified before the given date | -| `modifiedAfter` | string | No | Find notes modified after the given date | -| `sort` | string array | No | Order the notes by the given criterion | - - 1. As the output of this command might be very verbose and put a heavy load on the LSP client, you need to explicitly set which note fields you want to receive with the `select` option. The following fields are available: `filename`, `filenameStem`, `path`, `absPath`, `title`, `lead`, `body`, `snippets`, `rawContent`, `wordCount`, `tags`, `metadata`, `created`, `modified` and `checksum`. + | Key | Type | Required? | Description | + | ---------------- | ------------ | --------- | --------------------------------------------------------------------------------------------------------- | + | `select` | string array | Yes | List of note fields to return<sup>1</sup> | + | `hrefs` | string array | No | Find notes matching the given path, including its descendants | + | `limit` | integer | No | Limit the number of notes found | + | `match` | string array | No | Terms to search for in the notes | + | `exactMatch` | boolean | No | (deprecated: use `matchStrategy`) Search for exact occurrences of the `match` argument (case insensitive) | + | `matchStrategy` | string | No | Specify match strategy, which may be "fts" (default), "exact" or "re" | + | `excludeHrefs` | string array | No | Ignore notes matching the given path, including its descendants | + | `tags` | string array | No | Find notes tagged with the given tags | + | `mention` | string array | No | Find notes mentioning the title of the given ones | + | `mentionedBy` | string array | No | Find notes whose title is mentioned in the given ones | + | `linkTo` | string array | No | Find notes which are linking to the given ones | + | `linkedBy` | string array | No | Find notes which are linked by the given ones | + | `orphan` | boolean | No | Find notes which are not linked by any other note | + | `tagless` | boolean | No | Find notes which have no tags | + | `related` | string array | No | Find notes which might be related to the given ones | + | `maxDistance` | integer | No | Maximum distance between two linked notes | + | `recursive` | boolean | No | Follow links recursively | + | `created` | string | No | Find notes created on the given date | + | `createdBefore` | string | No | Find notes created before the given date | + | `createdAfter` | string | No | Find notes created after the given date | + | `modified` | string | No | Find notes modified on the given date | + | `modifiedBefore` | string | No | Find notes modified before the given date | + | `modifiedAfter` | string | No | Find notes modified after the given date | + | `sort` | string array | No | Order the notes by the given criterion | + + 1. As the output of this command might be very verbose and put a heavy load on + the LSP client, you need to explicitly set which note fields you want to + receive with the `select` option. The following fields are available: + `filename`, `filenameStem`, `path`, `absPath`, `title`, `lead`, `body`, + `snippets`, `rawContent`, `wordCount`, `tags`, `metadata`, `created`, + `modified` and `checksum`. </details> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zk-0.14.2/internal/adapter/editor/editor.go new/zk-0.15.0/internal/adapter/editor/editor.go --- old/zk-0.14.2/internal/adapter/editor/editor.go 2025-02-07 21:57:31.000000000 +0100 +++ new/zk-0.15.0/internal/adapter/editor/editor.go 2025-03-18 09:07:48.000000000 +0100 @@ -39,7 +39,7 @@ // initial note content to `zk new`. Without this, Vim doesn't work // properly in this case. // See https://github.com/zk-org/zk/issues/4 - cmd := executil.CommandFromString(e.editor + " " + shellquote.Join(paths...) + " </dev/tty") + cmd := executil.CommandFromString(e.editor + " " + shellquote.Join(paths...) + CMD_SUFFIX) cmd.Stdin = os.Stdin cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zk-0.14.2/internal/adapter/editor/suffix-windows.go new/zk-0.15.0/internal/adapter/editor/suffix-windows.go --- old/zk-0.14.2/internal/adapter/editor/suffix-windows.go 1970-01-01 01:00:00.000000000 +0100 +++ new/zk-0.15.0/internal/adapter/editor/suffix-windows.go 2025-03-18 09:07:48.000000000 +0100 @@ -0,0 +1,5 @@ +//go:build windows + +package editor + +const CMD_SUFFIX = "" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zk-0.14.2/internal/adapter/editor/suffix.go new/zk-0.15.0/internal/adapter/editor/suffix.go --- old/zk-0.14.2/internal/adapter/editor/suffix.go 1970-01-01 01:00:00.000000000 +0100 +++ new/zk-0.15.0/internal/adapter/editor/suffix.go 2025-03-18 09:07:48.000000000 +0100 @@ -0,0 +1,5 @@ +//go:build !windows + +package editor + +const CMD_SUFFIX = " </dev/tty" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zk-0.14.2/internal/adapter/fzf/note_filter.go new/zk-0.15.0/internal/adapter/fzf/note_filter.go --- old/zk-0.14.2/internal/adapter/fzf/note_filter.go 2025-02-07 21:57:31.000000000 +0100 +++ new/zk-0.15.0/internal/adapter/fzf/note_filter.go 2025-03-18 09:07:48.000000000 +0100 @@ -98,7 +98,7 @@ bindings = append(bindings, Binding{ Keys: newBinding, Description: "create a note with the query as title" + suffix, - Action: fmt.Sprintf(`abort+execute("%s" new "%s" --title {q} < /dev/tty > /dev/tty)`, zkBin, dir.Path), + Action: fmt.Sprintf(`become("%s" new "%s" --title {q} < /dev/tty > /dev/tty)`, zkBin, dir.Path), }) } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zk-0.14.2/internal/adapter/lsp/cmd_list.go new/zk-0.15.0/internal/adapter/lsp/cmd_list.go --- old/zk-0.14.2/internal/adapter/lsp/cmd_list.go 2025-02-07 21:57:31.000000000 +0100 +++ new/zk-0.15.0/internal/adapter/lsp/cmd_list.go 2025-03-18 09:07:48.000000000 +0100 @@ -24,18 +24,18 @@ if len(args) > 1 { arg, ok := args[1].(map[string]interface{}) if !ok { - return nil, fmt.Errorf("%s expects a dictionary of options as second argument, got: %v", cmdTagList, args[1]) + return nil, fmt.Errorf("%s expects a dictionary of options as second argument, got: %v", cmdList, args[1]) } err := unmarshalJSON(arg, &opts) if err != nil { - return nil, errors.Wrapf(err, "failed to parse %s args, got: %v", cmdTagList, arg) + return nil, errors.Wrapf(err, "failed to parse %s args, got: %v", cmdList, arg) } } if len(opts.Select) == 0 { - return nil, fmt.Errorf("%s expects a `select` option with the list of fields to return", cmdTagList) + return nil, fmt.Errorf("%s expects a `select` option with the list of fields to return", cmdList) } - var selection = newListSelection(opts.Select) + selection := newListSelection(opts.Select) findOpts, err := opts.NewNoteFindOpts(notebook) if err != nil { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zk-0.14.2/internal/adapter/lsp/document.go new/zk-0.15.0/internal/adapter/lsp/document.go --- old/zk-0.14.2/internal/adapter/lsp/document.go 2025-02-07 21:57:31.000000000 +0100 +++ new/zk-0.15.0/internal/adapter/lsp/document.go 2025-03-18 09:07:48.000000000 +0100 @@ -213,10 +213,18 @@ var insideIndented = false var currentCodeBlockStart = -1 -// check whether the current line in document is within a fenced or indented +// check whether the current line in document is within a fenced or indented // code block func isLineWithinCodeBlock(lines []string, lineIndex int, line string) bool { - // if line is already within code fences or indented code block + // Reset global state from previous runs + if lineIndex == 0 { + insideInline = false + insideFenced = false + insideIndented = false + currentCodeBlockStart = -1 + } + + // if line is already within code fences or indented code block if insideFenced { if fencedEndRegex.FindStringIndex(line) != nil && lines[currentCodeBlockStart][:3] == line[:3] { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zk-0.14.2/internal/core/config.go new/zk-0.15.0/internal/core/config.go --- old/zk-0.14.2/internal/core/config.go 2025-02-07 21:57:31.000000000 +0100 +++ new/zk-0.15.0/internal/core/config.go 2025-03-18 09:07:48.000000000 +0100 @@ -5,6 +5,7 @@ "path/filepath" "strings" + "github.com/bmatcuk/doublestar/v4" toml "github.com/pelletier/go-toml" "github.com/zk-org/zk/internal/util/errors" "github.com/zk-org/zk/internal/util/opt" @@ -118,7 +119,7 @@ for name, config := range c.Groups { for _, groupPath := range config.Paths { - matches, err := filepath.Match(groupPath, path) + matches, err := doublestar.Match(groupPath, path) if err != nil { return "", errors.Wrapf(err, "failed to match group %s to %s", name, path) } else if matches { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zk-0.14.2/internal/core/config_test.go new/zk-0.15.0/internal/core/config_test.go --- old/zk-0.14.2/internal/core/config_test.go 2025-02-07 21:57:31.000000000 +0100 +++ new/zk-0.15.0/internal/core/config_test.go 2025-03-18 09:07:48.000000000 +0100 @@ -287,6 +287,15 @@ "other": { Paths: []string{"other"}, }, + "star": { + Paths: []string{"star/star*.md"}, + }, + "false positive for doublestar": { + Paths: []string{"*/doublestar.md"}, + }, + "doublestar": { + Paths: []string{"**/doublestar.md"}, + }, }, } @@ -301,6 +310,18 @@ name, err = config.GroupNameForPath("other/note.md") assert.Nil(t, err) assert.Equal(t, name, "other") + + name, err = config.GroupNameForPath("star/start.md") + assert.Nil(t, err) + assert.Equal(t, name, "star") + + name, err = config.GroupNameForPath("star/star.md") + assert.Nil(t, err) + assert.Equal(t, name, "star") + + name, err = config.GroupNameForPath("double/star/doublestar.md") + assert.Nil(t, err) + assert.Equal(t, name, "doublestar") } func TestParseMergesGroupConfig(t *testing.T) {
