MCPcopy Create free account
hub / github.com/ZenNotes/zennotes / openOrCreateByPath

Function openOrCreateByPath

packages/app-core/src/components/Editor.tsx:659–688  ·  view source on GitHub ↗
(raw: string)

Source from the content-addressed store, hash-verified

657 }
658
659 const openOrCreateByPath = async (raw: string): Promise<void> => {
660 const value = raw.trim()
661 if (!value) return
662 let parsed: ReturnType<typeof parseCreateNotePath>
663 try {
664 parsed = parseCreateNotePath(value)
665 } catch (err) {
666 alertEditorError((err as Error).message)
667 return
668 }
669 const state = useStore.getState()
670 // If something already resolves to that target (wiki-style + case-
671 // insensitive), open it instead of creating a duplicate.
672 const existing = state.notes.find(
673 (n) =>
674 n.folder !== 'trash' &&
675 n.path.toLowerCase() === parsed.relPath.toLowerCase()
676 )
677 if (existing) {
678 await state.selectNote(existing.path)
679 state.setFocusedPanel('editor')
680 requestAnimationFrame(() => useStore.getState().editorViewRef?.focus())
681 return
682 }
683 await state.createAndOpen(parsed.folder, parsed.subpath, {
684 title: parsed.title
685 })
686 state.setFocusedPanel('editor')
687 requestAnimationFrame(() => useStore.getState().editorViewRef?.focus())
688 }
689
690 Vim.defineEx(
691 'edit',

Callers 1

registerVimNoteCommandsFunction · 0.85

Calls 2

parseCreateNotePathFunction · 0.90
alertEditorErrorFunction · 0.85

Tested by

no test coverage detected