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) {

Reply via email to