Commit Graph

53 Commits

Author SHA1 Message Date
Tienson Qin
d8809f0b7e feat: cljs sdk (#12168)
Add clojurescript plugins API
2025-10-21 16:32:12 +08:00
charlie
e362cfa0ae enhance(plugins): types 2025-03-20 10:44:23 +08:00
charlie
99998e25e9 enhance(libs): utils apis 2025-01-09 17:35:55 +08:00
charlie
72c09e5c30 enhance(libs): types 2025-01-09 14:22:30 +08:00
charlie
25adb80b96 enhance(plugin): app proxy call 2025-01-06 17:34:03 +08:00
Charlie
036df25a17 Enhance: plugin APIs (#10399)
* enhance(plugin): call apis with the sdk ns

* enhance(plugin): types

* enhance(api): get value from the computed style

* enhance(api): types

* enhance(plugin): types

* enhance(plugin): types

* fix: lint

* fix(apis): incorrect shortcut command registion for block editing mode #10392

* fix(api): types

* enhance(apis): support register shortcuts with multi binding vals

* fix(plugins): normalize command key to make the internal keyword legal

* chore(plugin): build libs core

* chore(plugin): bump version

* enhance(apis): normalize apis cljs data

* chore(plugin): update libs user sdk

* chore(plugin): CHANGELOG.md

* fix: typo

* fix(ux): support querying plugins with right space chars
2023-12-13 15:42:21 +08:00
charlie
2eaa1162e1 enhance(plugin): better log for beforeunload hook on user side 2023-08-30 14:17:14 +08:00
Leonardo Salgueiro
5e1117ef92 fix(bug): #4447 (#10111)
* actually using result from deepMerge when updating settings
* replacing merge from lodash with merge from deepmerge

---------

Co-authored-by: Tienson Qin <tiensonqin@gmail.com>
2023-08-30 14:15:45 +08:00
Charlie
6d6da2046c Enhance/shortcuts (#9803)
* refactor(shortcuts): simplify to build handler category map

* fix(shortcuts): redundant re-mount for the pdf shortcuts

* refactor(shortcuts): simplify names

* refactor(shortcuts): simplify user keynames

* fix(shortcuts): persist inited state for dev mode

* refactor(shortcuts): simplify handlers installation

* refactor(shortcuts): optimize shortcuts mixin

* fix: incorrect function ref

* refactor(shortcuts): shortcuts mixin

* fix(shortcuts): incorrect initialization for the pdf shortcut handler

* refactor(shortcuts): optimize binding keys map

* refactor(shortcuts): optimize shortcuts conflicts detection

* refactor(shortcuts): optimize binding ids map

* refactor(shortcuts): WIP the new keymap page

* refactor(shortcuts): WIP the new keymap related components

* feat(shortcuts): WIP fuzzy search for the shortcuts

* refactor(shortcuts): WIP the new keymap related components

* feat(shortcuts): WIP the new shorcuts record component

* feat(shortcuts): WIP the new shorcuts record component

* feat(shortcuts): WIP check shortcut conflicts component

* feat(shortcuts): WIP the new shorcuts record component

* refactor(shortcuts): WIP persist user shortcuts

* fix(shortcuts): detection for the conflicts

* feat(shortcuts): WIP detection for the conflicts

* feat(shortcuts): WIP persist user shortcuts

* refactor(shortcuts): add unit tests

* enhance(ux): search pane for the shortcuts

* feat(shortcuts): remove the existent shortcut item

* feat(shortcuts): fold/unfold categories

* feat(shortcuts): add shortcuts filters

* enhance(shortcuts): resove binding map description

* enhance(shortcuts): reactive category shortcuts

* enhance(shortcuts): register api for plugins

* feat(shortcuts): add keyboard shortcuts filters

* feat(shortcuts): impl keyboard shortcuts filters

* enhance(shortcuts): leader keys for the shortcut conflicts detection

* enhance(tests): leader keys conflicts for the shortucts

* enhance(shortcuts): parse conflicts from current binding list

* enhance(ui): polish the component of the restore shortcut action

* enhance(shortcuts): get conflicts with specific handler id

* enhance(shortcuts): polish the confilts component

* enhance(shortcuts): polish keymap conflicts component

* enhance(shortcuts): ux for handling shorcuts conflicts

* enhance(ui): polish notifications cp

* fix(shortcuts): remove reduplicate shortcuts for category

* enhance(shortcuts): polish ux for handling shorcuts conflicts

* chore(plugin): build libs core

* enhance(plugin): support shortcut command lifecycle hooks

* enhance(plugin): support shortcut command lifecycle hooks

* chore(plugin): build libs core

* enhance(shortcuts): support shortcuts saved to global config

* enhance(shortcuts): support shortcuts be saved to global config

* feat(shortcuts): support keymap manager to global settings

* enhance(shortcuts): shortcut to open keymap settings

* fix(units): tests

* fix: lints

* enhance(shortcuts): unlisten all shortcuts

* fix: lints

* fix: lints

* fix(units): tests

* fix(units): tests

* fix(units): tests

* enhance(shortcuts): unlisten/listen all shortcuts

* enhance(shortcuts): polish conflicts component

* fix(ui): modal size

* fix(ui): modal panel container

* enhance(shortcuts): i18n

* enhance(ui): layout of the shortcuts recorder component

* fix(lint): i18n

* enhance(ui): keyboard icon for the keymap settings tab

* fix(shortcuts): incorrect filters for the collaspsed shortcuts

* enhance(ui): polish details for the keymap settings

* enhance(ui): polish details for the keymap settings

* fix(shortcuts): get shortcut description error when the associated handler-id not exist

* fix(ui): the shortcut disabled label overlaps with section headers.

* refactor(shortcuts): names

* enhance(ui): filter icons
2023-08-29 19:33:48 +08:00
Charlie
675811ccde Enhance/plugins (#8202)
* improve(plugins): install hooks with user options

* improve(plugin): remove todos

* improve(plugin): hook for a specific plugin

* e2e tests

* improve(ui): global search bar for the results from the custom search service
2023-01-05 19:30:41 +08:00
charlie
488d376262 fix(plugin): correct parameters of datascript query api 2022-12-22 21:14:36 +08:00
Charlie
020317911f Enhance/plugin APIs (#7555)
* feat: WIP native cli command support

* Add :shell/command-whitelist option

* Integrate cli to code block

* Add :code-block/command-whitelist option

* fix: size of icon

* improve(shell): cache user shell whitelist on application configures file

* improve(electron): promisify run cli command

* chore(libs): update version

* fix(plugin): incorrect payload of pdf highlights section hook

* improve(plugin): block renderer with specific block uuid

* improve(plugin): expose logger for user lib

* improve(plugin): block hooks type

* improve(plugin): block slot hook with specific block

* improve(plugin): auto generate key for provide UI options

* improve(plugin): style of injected ui container

* improve(plugin): types

* improve(plugin): async messaging api from host to plugin

* improve(plugin): add types

* improve(apis): get external plugin metadata

* improve(apis): invoke external plugin impls

* improve(apis): call external plugin impls for simple commands

* enhance(apis): datascript query api for predicate inputs

* enhance(apis): datascript query api for predicate inputs

* fix(apis): redundant args of datascript query api

* enhance(plugins): position of float ui container

* enhance(plugins): style of setting options

* enhance(plugins): layouts data for float ui

* chore(plugins): update CHANGELOG.md

* improve(apis): add types

* chore: fix some inclusive terms

* improve(apis): types

* chore(plugins): update CHANGELOG.md

* chore(plugins): build libs

* chore: update CHANGELOG.md

* chore: remove experiemental alda integration

* fix(lint): remove unused methods

Co-authored-by: Tienson Qin <tiensonqin@gmail.com>
Co-authored-by: Andelf <andelf@gmail.com>
2022-12-19 20:23:25 +08:00
Charlie
dda1f9bd9f Enhance / Plugin APIs (#6945)
Added
1. All configurations of current graph.
App.getCurrentGraphConfigs: () => Promise<any>
2. All favorite pages list of current graph.
App.getCurrentGraphFavorites: () => Promise<Array<string> | null>
3. All recent pages list of current graph.
App.getCurrentGraphRecent: () => Promise<Array<string> | null>
4. Clear right sidebar blocks.
App.clearRightSidebarBlocks: (opts?: { close: boolean }) => void
5. Support register CodeMirror enhancer. #Experiment feature
Experiments.registerExtensionsEnhancer<T = any>(type: 'katex' | 'codemirror', enhancer: (v: T) => Promise<any>)
6. Support hooks for app search service. #Alpha stage
App.registerSearchService<T extends IPluginSearchServiceHooks>(s: T): void
7. Support focus option for App.insertBlock. Credit to [[tennox]] #PR

Fixed
1. Adjust build script to be compatible for shadow-cljs bundler.
How to set up a clojurescript project with shadow-cljs?
https://github.com/rlhk/logseq-url-plus/blob/main/doc/dev-notes.md
2022-11-22 22:00:29 +08:00
Charlie
d53ac94bfc Enhance/pdf improvements (#6475)
Full-text search, highlights and assets alias support 
It also exposes a plugin API for highlight context menu   
    ```ts
    /**
       * Current it's only available for pdf viewer
       * @param label - displayed name of command
       * @param action - callback for the clickable item
       * @param opts - clearSelection: clear highlight selection when callback invoked
       */
      registerHighlightContextMenuItem: (
        label: string,
        action: SimpleCommandCallback,
        opts?: {
          clearSelection: boolean
        }
      ) => unknown
    ```
2022-10-09 20:44:18 +08:00
Tienson Qin
f4262cf919 Enhance/api storages for graph assets (#6488)
* improve(api): assets storage for plugin

Co-authored-by: charlie <xyhp915@qq.com>
2022-10-04 12:30:19 +08:00
charlie
eb72f2e3c7 improve(plugin): api to create block uuid 2022-08-22 21:54:17 +08:00
charlie
7bd32fb911 improve(plugin): update types 2022-08-08 15:49:11 +08:00
charlie
3b0e1c58a3 improve(plugin): WIP api of http request 2022-06-16 01:43:49 +08:00
Yue Yang
17b91e51c3 feat: custom theme switching (#4741)
* feat: custom theme switching

Signed-off-by: Yue Yang <g1enyy0ung@gmail.com>

* chore: handle reset-custom-theme

Signed-off-by: Yue Yang <g1enyy0ung@gmail.com>

* fix: unregisterTheme

Signed-off-by: Yue Yang <g1enyy0ung@gmail.com>

* fix: format with ts-standard

Signed-off-by: Yue Yang <g1enyy0ung@gmail.com>

* chore: reset extra formats

Signed-off-by: Yue Yang <g1enyy0ung@gmail.com>

* chore: simplify array types

Signed-off-by: Yue Yang <g1enyy0ung@gmail.com>

* Update lsplugin.core.js

* fix: sync upstream

Signed-off-by: Yue Yang <g1enyy0ung@gmail.com>

* chore: add `no mode` themes into panel

Signed-off-by: Yue Yang <g1enyy0ung@gmail.com>

* fix: ci

Signed-off-by: Yue Yang <g1enyy0ung@gmail.com>

* fix: remove first <hr />

Signed-off-by: Yue Yang <g1enyy0ung@gmail.com>

* fix: lockfile

Signed-off-by: Yue Yang <g1enyy0ung@gmail.com>

* chore: update

Signed-off-by: Yue Yang <g1enyy0ung@gmail.com>

* chore: set-theme! => set-theme-mode!

Signed-off-by: Yue Yang <g1enyy0ung@gmail.com>

* fix: selectTheme

Signed-off-by: Yue Yang <g1enyy0ung@gmail.com>

* perf: reduce unnecessary logic

Signed-off-by: Yue Yang <g1enyy0ung@gmail.com>
2022-05-19 10:18:43 +08:00
charlie
a33bb0cad1 fix(plugin): fix code style 2022-04-29 18:51:25 +08:00
Charlie
9885dc64e0 Update libs/src/LSPlugin.user.ts
Co-authored-by: Peng Xiao <pengxiao@outlook.com>
2022-04-29 18:51:25 +08:00
charlie
80bc3f0337 improve(plugin): support to get app info from api 2022-04-29 18:51:25 +08:00
charlie
f4bb7bfa9b fix(plugin): return clear handle for hooks api 2022-04-29 18:51:25 +08:00
charlie
1963a9709c fix(plugin): make the latest user sdk compatible for old plugin core 2022-04-22 15:51:40 +08:00
Charlie
79bc33e1e3 Enhance/more ns plugin api (#4828)
* improve(plugin): WIP add settings schema

* improve(plugin): add identity for settings modal

* improve(plugin): WIP add settings input

* fix(ui): scrollbar overlay of modal panel content

* improve(plugin): WIP add more render types of setting item

* improve(plugin): WIP polish settings items

* improve(plugin): WIP settings list of plugins

* improve(plugin): more settings types & polish releated ui

* fix(plugin): sometimes disable plugin not work

* improve(plugin): polish ui of plugin settings

* fix(dev): warning of lint

* improve(plugin): add api of settings changed

* chore: build libs core

* fix(ui): width of settings panel wrap

* improve(plugin): separate layouts data from settings aio file

* imporve(plugin): container size of single plugin settings

* fix: add missing state

* improve(plugin): add Git ns

* improve(plugin): git related api

* improve(api): type of git result

* chore: build libs core

* fix(dev): kondo lint

* fix(plugin): use cdn sdk when js entry

* chore: build libs core

* fix(plugin): env condition

* improve(plugin): add UI ns

* fix(api): arguments of datascript query

* enhance(api): manageable message instance of UI tools

* enhance(api): WIP add experiments api

* enhance(api): WIP add resources state of plugin

* improve(plugin): add status of loading script resources

* improve(plugin): more opts for script loader

* improve(plugin): WIP add fenced code renderer hook

* improve(plugin): fenced code renderer hook

* fix(plugin): resource root path of plugin fs location

* imporve(plugin): support local files for loading scripts

* improve(plugin): types of expirements api

* fix: typo of class

* enhance(api): add namespace related apis

* enhance(api): add linked refrences related apis

* enhance(plugin): add sample links to related api comments

* improve(plugin): add db changed hook & optimize strategy of caller for hooks

* improve(plugin): compatible commands registration for old sdk

* improve(plugin): collect user sdk version for plugin local

* improve(plugin): add internal callable apis for user sdk

* chore(plugin): missing files & bump libs version

* improve(plugin): compatiable for old sdk about hook messaging optimization

* improve(plugin): db hook optimization for old sdk

* enhance(ux): auto focus searchbar when open plugins list

* improve(plugin): api of a hook from specific block changed event

* improve(plugin): api of db block change hook

* improve(plugin): add show bracket user config of api

* improve(plugin): api of db block change hook

* fix(api): toggle collapsed of block

* improve(api): try to init grpah with git before exec git commands

* improve(plugin): attributes of sandbox container

* improve(dev): support register command with keybinding

* improve(plugin): add api of register shortcut command

* fix(plugin): reubild slash commands when new command registration

* fix(dev): lint

* improve(dev): lint script of libs codebase

* chore(dev): remove useless codes

* improve(plugin):sanitize path string of plugin repo value

* fix(plugin): rebuild commands list when unregister a plugin

* fix(ui): overflow width of query result table

* chore: rebuild libs core

* improve(plugin): add assets related apis

* chore: rebuild libs core

* improve(plugin): support replace state of into block in page api

* improve(plugin): prepend/append child block in page

* improve(plugin): polished exceptions message of plugin update/install

* fix(plugin): update settings within gui

* improve(ux): debounce change event of input for plugin settings gui

* chore: rebuild libs core

* enhance(plugin): catch exception of hook plugin
2022-04-21 18:43:16 +08:00
Charlie
24b0236b7d Enhance/Settings UI of plugins (#4035)
more settings types & polish releated ui
2022-02-17 10:00:53 +08:00
charlie
6f1c076f8d improve(plugin): typos 2021-12-21 12:38:44 +08:00
Charlie
9029c632ef Enhance/plugin apis (#3355)
* improve(plugin): support autoFocus option for main ui frame

* improve(plugin): make single selected block as current block

* improve(api): get selected blocks

* improve(plugin): support call built-in command from api

* fix(plugin): sanitize key of shortcut id

* improve(plugin): add invoke built-in command api &

* fix(editor): overwritten class of collapsed block

* improve(plugin): add `getStateFromStore` api

* chore: build libs core

Co-authored-by: Tienson Qin <tiensonqin@gmail.com>
2021-12-08 10:43:58 +08:00
Charlie
c2b882b57d Feat/support keybinding for plugin commands (#3176)
register shortcut and shortcut for palette commands
2021-11-22 15:44:27 +08:00
Charlie
72c038e6fe Feat/moveable plugin UI container (#3045)
* improve(plugin): add container for main ui frame

* feat(plugin): support draggable & resizable UI container for main ui

* feat: support fork sub layout container

* improve(plugin): add editor selection api

* improve(plugin): click outside configure for float container

* improve(plugin): api of journal for create-page

* improve(plugin): api of open-in-right-sidebar

* improve(plugin): add full screen api

* improve(plugin): api of register-palette-command

* improve(plugin): add apis
2021-11-15 16:57:20 +08:00
charlie
d8d69c0e51 improve(plugin): run installed plugin in isolated domain 2021-08-25 16:24:56 +08:00
charlie
f2b2552a6c improve(plugin): types 2021-08-25 09:39:18 +08:00
charlie
981bcf5ec6 improve(plugin): add types and api of scrolling to block in page 2021-07-19 19:36:33 +08:00
charlie
f4b6995479 fix(plugin): typo 2021-07-14 00:37:31 +08:00
charlie
661bb064f7 improve(plugin): basic impls of file storage api for specific plugin context 2021-07-14 00:37:31 +08:00
charlie
153f8f3202 improve(plugin): rename api & bump minor version 2021-07-02 10:51:44 +08:00
charlie
af4ec42c78 improve(plugin): support register page bar menu action item 2021-06-30 17:44:51 +08:00
charlie
d4c7a8a3b0 improve(plugin): types 2021-06-29 18:01:10 +08:00
charlie
e947acf7bd feat(plugin): support configurable UI api for toolbar action items 2021-06-29 17:55:06 +08:00
charlie
80e47bf829 fix(plugin): beforeunload call error if it not exist & bump libs version 2021-06-17 10:33:17 +08:00
charlie
b3e6ba1efe improve(plugin): fit for tsdoc extractor 2021-06-09 19:07:10 +08:00
charlie
e0840067c2 improve(plugin): add more types & apis 2021-06-05 11:38:50 +08:00
charlie
ba1cc8f752 improve(plugin): add editting cursor api & types 2021-06-03 09:56:46 +08:00
charlie
c9f68296b4 improve(plguin): apis about insertion related with cursor state & more types 2021-06-01 22:33:41 +08:00
charlie
430c00f8e7 improve(plugin): user types 2021-05-28 19:51:45 +08:00
charlie
1cf08d071d improve(plugin): add beforeunload interceptor 2021-05-21 13:56:59 +08:00
charlie
c6d1754660 improve(plugin): export exceptions of api call 2021-05-19 10:34:31 +08:00
Peng Xiao
8fa6da6901 type: fix type 2021-05-18 10:33:34 +08:00
Peng Xiao
8561acb57f enhance: types for lsp 2021-05-18 10:33:34 +08:00
charlie
57079a9234 chore(plugin): bump version 2021-05-17 11:14:37 +08:00