We need a reliable way to open a note by filename and replace the contents
@EduardMe is already working on this.
Since Nov 30, 2022.
- Dominant language
- JavaScript
- Stars
- 204
- Forks
- 82
- Avg merge
- 22h 27m
- Merged PRs (30d)
- 3
Description
@dwertheimer: "I need a function I can call that will open a file with a certain filename whether it exists or not. No matter what, I can rely on getting a note back."
@jgclark and I have several plugins where the plugin needs to be able to create a note at a specific filename and replace that note's content reliably. I have tried many different approaches and have had challenges getting this to work 100% of the time because of the race conditions with notes being created and a "# " being immediately added to the note.
Lots of discussion on Discord: https://discord.com/channels/763107030223290449/1033958465326026822/1045726596679598092
@eduardme one way you can help me accomplish this objective would be to give us an API or a parameter that allows me to 1) create/open a note with a specific filename and 2) immediately set the content to XXX
Hoping that if you're doing it on the Swift side, it will be more reliable.
So, if the note does not exist, it gets created with the content
If the file does exist, the content is replaced
Maybe this would work if you add a "content" parameter to the end of Editor.openNoteByFilename
We should also have a DataStore version of this functionality as well
/**
* Opens a note using the given filename
* @param {String} filename - Filename of the note file (can be without extension), but has to include the relative folder such as `folder/filename.txt`.
* @param {Boolean} newWindow - (optional) Open note in new window (default = false)?
* @param {Number} highlightStart - (optional) Start position of text highlighting
* @param {Number} highlightEnd - (optional) End position of text highlighting
* @param {Boolean} splitView - (optional) Open note in a new split view (Note: Available from v3.4)
* @param {Boolean} createIfNeeded - (optional) Create the note with the given filename if it doesn't exist (only project notes, v3.5.2+)
* @param {String} content /* dbw added */ - Content to fill the note (replaces contents if the note already existed)
* @return {Promise} Note? - When the note has been opened, a promise will be returned with the note object
*/
.openNoteByFilename(filename, newWindow, highlightStart, highlightEnd, splitView, createIfNeeded, content /*dbw added*/)
```js
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.