diff --git a/config/absytree_config_wasm.wasm b/config/absytree_config_wasm.wasm index ea546ae0..7028313f 100755 Binary files a/config/absytree_config_wasm.wasm and b/config/absytree_config_wasm.wasm differ diff --git a/config/keybindings_normal.nim b/config/keybindings_normal.nim index ffda724b..c11fd8ce 100644 --- a/config/keybindings_normal.nim +++ b/config/keybindings_normal.nim @@ -1,4 +1,5 @@ -import absytree_runtime, event, id +import absytree_runtime +import misc/[event, id] proc setModeChangedHandler*(handler: proc(editor: TextDocumentEditor, oldMode: string, newMode: string)) = let modeChangedHandler = getOption("editor.text.mode-changed-handler", "") diff --git a/config/keybindings_vim.nim b/config/keybindings_vim.nim index 95926581..812016b9 100644 --- a/config/keybindings_vim.nim +++ b/config/keybindings_vim.nim @@ -1,5 +1,5 @@ import absytree_runtime, keybindings_normal -import timer +import misc/[timer] proc loadVimKeybindings*() {.scriptActionWasmNims("load-vim-keybindings").} = loadNormalKeybindings() diff --git a/scripting/absytree_runtime.nim b/scripting/absytree_runtime.nim index 2267ab94..e7c72869 100644 --- a/scripting/absytree_runtime.nim +++ b/scripting/absytree_runtime.nim @@ -1,6 +1,7 @@ import std/[strformat, tables, macros, json, strutils, sugar, sequtils, genasts] +import misc/[event, util, wrap] +import absytree_api -import absytree_api, event, util, wrap export absytree_api, util, strformat, tables, json, strutils, sugar, sequtils, scripting_api type AnyDocumentEditor = TextDocumentEditor | ModelDocumentEditor diff --git a/scripting/absytree_runtime_impl.nim b/scripting/absytree_runtime_impl.nim index 510931ad..64dd8e83 100644 --- a/scripting/absytree_runtime_impl.nim +++ b/scripting/absytree_runtime_impl.nim @@ -1,4 +1,5 @@ -import absytree_runtime, event +import absytree_runtime +import misc/[event] proc handleGlobalAction*(action: string, args: JsonNode): bool = if action == "lambda-action": diff --git a/scripting/editor_api_wasm.nim b/scripting/editor_api_wasm.nim index 6aaa9426..43577b48 100644 --- a/scripting/editor_api_wasm.nim +++ b/scripting/editor_api_wasm.nim @@ -1,5 +1,5 @@ import std/[json] -import scripting_api, myjsonutils +import scripting_api, misc/myjsonutils ## This file is auto generated, don't modify. diff --git a/scripting/editor_ast_api.nim b/scripting/editor_ast_api.nim deleted file mode 100644 index 00b3dee5..00000000 --- a/scripting/editor_ast_api.nim +++ /dev/null @@ -1,106 +0,0 @@ -import std/[json] -import "../src/scripting_api" -when defined(js): - import absytree_internal_js -elif defined(wasm): - # import absytree_internal_wasm - discard -else: - import absytree_internal - -## This file is auto generated, don't modify. - -proc moveCursor*(self: AstDocumentEditor; direction: int) = - editor_ast_moveCursor_void_AstDocumentEditor_int_impl(self, direction) -proc moveCursorUp*(self: AstDocumentEditor) = - editor_ast_moveCursorUp_void_AstDocumentEditor_impl(self) -proc moveCursorDown*(self: AstDocumentEditor) = - editor_ast_moveCursorDown_void_AstDocumentEditor_impl(self) -proc moveCursorNext*(self: AstDocumentEditor) = - editor_ast_moveCursorNext_void_AstDocumentEditor_impl(self) -proc moveCursorPrev*(self: AstDocumentEditor) = - editor_ast_moveCursorPrev_void_AstDocumentEditor_impl(self) -proc moveCursorNextLine*(self: AstDocumentEditor) = - editor_ast_moveCursorNextLine_void_AstDocumentEditor_impl(self) -proc moveCursorPrevLine*(self: AstDocumentEditor) = - editor_ast_moveCursorPrevLine_void_AstDocumentEditor_impl(self) -proc selectContaining*(self: AstDocumentEditor; container: string) = - editor_ast_selectContaining_void_AstDocumentEditor_string_impl(self, container) -proc deleteSelected*(self: AstDocumentEditor) = - editor_ast_deleteSelected_void_AstDocumentEditor_impl(self) -proc copySelected*(self: AstDocumentEditor) = - editor_ast_copySelected_void_AstDocumentEditor_impl(self) -proc finishEdit*(self: AstDocumentEditor; apply: bool) = - editor_ast_finishEdit_void_AstDocumentEditor_bool_impl(self, apply) -proc undo*(self: AstDocumentEditor) = - editor_ast_undo_void_AstDocumentEditor_impl(self) -proc redo*(self: AstDocumentEditor) = - editor_ast_redo_void_AstDocumentEditor_impl(self) -proc insertAfterSmart*(self: AstDocumentEditor; nodeTemplate: string) = - editor_ast_insertAfterSmart_void_AstDocumentEditor_string_impl(self, - nodeTemplate) -proc insertAfter*(self: AstDocumentEditor; nodeTemplate: string) = - editor_ast_insertAfter_void_AstDocumentEditor_string_impl(self, nodeTemplate) -proc insertBefore*(self: AstDocumentEditor; nodeTemplate: string) = - editor_ast_insertBefore_void_AstDocumentEditor_string_impl(self, nodeTemplate) -proc insertChild*(self: AstDocumentEditor; nodeTemplate: string) = - editor_ast_insertChild_void_AstDocumentEditor_string_impl(self, nodeTemplate) -proc replace*(self: AstDocumentEditor; nodeTemplate: string) = - editor_ast_replace_void_AstDocumentEditor_string_impl(self, nodeTemplate) -proc replaceEmpty*(self: AstDocumentEditor; nodeTemplate: string) = - editor_ast_replaceEmpty_void_AstDocumentEditor_string_impl(self, nodeTemplate) -proc replaceParent*(self: AstDocumentEditor) = - editor_ast_replaceParent_void_AstDocumentEditor_impl(self) -proc wrap*(self: AstDocumentEditor; nodeTemplate: string) = - editor_ast_wrap_void_AstDocumentEditor_string_impl(self, nodeTemplate) -proc editPrevEmpty*(self: AstDocumentEditor) = - editor_ast_editPrevEmpty_void_AstDocumentEditor_impl(self) -proc editNextEmpty*(self: AstDocumentEditor) = - editor_ast_editNextEmpty_void_AstDocumentEditor_impl(self) -proc rename*(self: AstDocumentEditor) = - editor_ast_rename_void_AstDocumentEditor_impl(self) -proc selectPrevCompletion*(self: AstDocumentEditor) = - editor_ast_selectPrevCompletion_void_AstDocumentEditor_impl(self) -proc selectNextCompletion*(self: AstDocumentEditor) = - editor_ast_selectNextCompletion_void_AstDocumentEditor_impl(self) -proc applySelectedCompletion*(self: AstDocumentEditor) = - editor_ast_applySelectedCompletion_void_AstDocumentEditor_impl(self) -proc cancelAndNextCompletion*(self: AstDocumentEditor) = - editor_ast_cancelAndNextCompletion_void_AstDocumentEditor_impl(self) -proc cancelAndPrevCompletion*(self: AstDocumentEditor) = - editor_ast_cancelAndPrevCompletion_void_AstDocumentEditor_impl(self) -proc cancelAndDelete*(self: AstDocumentEditor) = - editor_ast_cancelAndDelete_void_AstDocumentEditor_impl(self) -proc moveNodeToPrevSpace*(self: AstDocumentEditor) = - editor_ast_moveNodeToPrevSpace_void_AstDocumentEditor_impl(self) -proc moveNodeToNextSpace*(self: AstDocumentEditor) = - editor_ast_moveNodeToNextSpace_void_AstDocumentEditor_impl(self) -proc selectPrev*(self: AstDocumentEditor) = - editor_ast_selectPrev_void_AstDocumentEditor_impl(self) -proc selectNext*(self: AstDocumentEditor) = - editor_ast_selectNext_void_AstDocumentEditor_impl(self) -proc openGotoSymbolPopup*(self: AstDocumentEditor) = - editor_ast_openGotoSymbolPopup_void_AstDocumentEditor_impl(self) -proc goto*(self: AstDocumentEditor; where: string) = - editor_ast_goto_void_AstDocumentEditor_string_impl(self, where) -proc runSelectedFunction*(self: AstDocumentEditor) = - editor_ast_runSelectedFunction_void_AstDocumentEditor_impl(self) -proc toggleOption*(self: AstDocumentEditor; name: string) = - editor_ast_toggleOption_void_AstDocumentEditor_string_impl(self, name) -proc runLastCommand*(self: AstDocumentEditor; which: string) = - editor_ast_runLastCommand_void_AstDocumentEditor_string_impl(self, which) -proc selectCenterNode*(self: AstDocumentEditor) = - editor_ast_selectCenterNode_void_AstDocumentEditor_impl(self) -proc scroll*(self: AstDocumentEditor; amount: float32) = - editor_ast_scroll_void_AstDocumentEditor_float32_impl(self, amount) -proc scrollOutput*(self: AstDocumentEditor; arg: string) = - editor_ast_scrollOutput_void_AstDocumentEditor_string_impl(self, arg) -proc dumpContext*(self: AstDocumentEditor) = - editor_ast_dumpContext_void_AstDocumentEditor_impl(self) -proc setMode*(self: AstDocumentEditor; mode: string) = - editor_ast_setMode_void_AstDocumentEditor_string_impl(self, mode) -proc mode*(self: AstDocumentEditor): string = - editor_ast_mode_string_AstDocumentEditor_impl(self) -proc getContextWithMode*(self: AstDocumentEditor; context: string): string = - editor_ast_getContextWithMode_string_AstDocumentEditor_string_impl(self, - context) diff --git a/scripting/editor_ast_api_wasm.nim b/scripting/editor_ast_api_wasm.nim deleted file mode 100644 index 62416811..00000000 --- a/scripting/editor_ast_api_wasm.nim +++ /dev/null @@ -1,736 +0,0 @@ -import std/[json] -import scripting_api, myjsonutils - -## This file is auto generated, don't modify. - - -proc editor_ast_moveCursor_void_AstDocumentEditor_int_wasm(arg: cstring): cstring {. - importc.} -proc moveCursor*(self: AstDocumentEditor; direction: int) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - argsJson.add block: - when int is JsonNode: - direction - else: - direction.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_moveCursor_void_AstDocumentEditor_int_wasm( - argsJsonString.cstring) - - -proc editor_ast_moveCursorUp_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc moveCursorUp*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_moveCursorUp_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_moveCursorDown_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc moveCursorDown*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_moveCursorDown_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_moveCursorNext_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc moveCursorNext*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_moveCursorNext_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_moveCursorPrev_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc moveCursorPrev*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_moveCursorPrev_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_moveCursorNextLine_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc moveCursorNextLine*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_moveCursorNextLine_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_moveCursorPrevLine_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc moveCursorPrevLine*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_moveCursorPrevLine_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_selectContaining_void_AstDocumentEditor_string_wasm(arg: cstring): cstring {. - importc.} -proc selectContaining*(self: AstDocumentEditor; container: string) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - argsJson.add block: - when string is JsonNode: - container - else: - container.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_selectContaining_void_AstDocumentEditor_string_wasm( - argsJsonString.cstring) - - -proc editor_ast_deleteSelected_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc deleteSelected*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_deleteSelected_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_copySelected_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc copySelected*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_copySelected_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_finishEdit_void_AstDocumentEditor_bool_wasm(arg: cstring): cstring {. - importc.} -proc finishEdit*(self: AstDocumentEditor; apply: bool) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - argsJson.add block: - when bool is JsonNode: - apply - else: - apply.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_finishEdit_void_AstDocumentEditor_bool_wasm( - argsJsonString.cstring) - - -proc editor_ast_undo_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc undo*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_undo_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_redo_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc redo*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_redo_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_insertAfterSmart_void_AstDocumentEditor_string_wasm(arg: cstring): cstring {. - importc.} -proc insertAfterSmart*(self: AstDocumentEditor; nodeTemplate: string) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - argsJson.add block: - when string is JsonNode: - nodeTemplate - else: - nodeTemplate.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_insertAfterSmart_void_AstDocumentEditor_string_wasm( - argsJsonString.cstring) - - -proc editor_ast_insertAfter_void_AstDocumentEditor_string_wasm(arg: cstring): cstring {. - importc.} -proc insertAfter*(self: AstDocumentEditor; nodeTemplate: string) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - argsJson.add block: - when string is JsonNode: - nodeTemplate - else: - nodeTemplate.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_insertAfter_void_AstDocumentEditor_string_wasm( - argsJsonString.cstring) - - -proc editor_ast_insertBefore_void_AstDocumentEditor_string_wasm(arg: cstring): cstring {. - importc.} -proc insertBefore*(self: AstDocumentEditor; nodeTemplate: string) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - argsJson.add block: - when string is JsonNode: - nodeTemplate - else: - nodeTemplate.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_insertBefore_void_AstDocumentEditor_string_wasm( - argsJsonString.cstring) - - -proc editor_ast_insertChild_void_AstDocumentEditor_string_wasm(arg: cstring): cstring {. - importc.} -proc insertChild*(self: AstDocumentEditor; nodeTemplate: string) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - argsJson.add block: - when string is JsonNode: - nodeTemplate - else: - nodeTemplate.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_insertChild_void_AstDocumentEditor_string_wasm( - argsJsonString.cstring) - - -proc editor_ast_replace_void_AstDocumentEditor_string_wasm(arg: cstring): cstring {. - importc.} -proc replace*(self: AstDocumentEditor; nodeTemplate: string) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - argsJson.add block: - when string is JsonNode: - nodeTemplate - else: - nodeTemplate.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_replace_void_AstDocumentEditor_string_wasm( - argsJsonString.cstring) - - -proc editor_ast_replaceEmpty_void_AstDocumentEditor_string_wasm(arg: cstring): cstring {. - importc.} -proc replaceEmpty*(self: AstDocumentEditor; nodeTemplate: string) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - argsJson.add block: - when string is JsonNode: - nodeTemplate - else: - nodeTemplate.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_replaceEmpty_void_AstDocumentEditor_string_wasm( - argsJsonString.cstring) - - -proc editor_ast_replaceParent_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc replaceParent*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_replaceParent_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_wrap_void_AstDocumentEditor_string_wasm(arg: cstring): cstring {. - importc.} -proc wrap*(self: AstDocumentEditor; nodeTemplate: string) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - argsJson.add block: - when string is JsonNode: - nodeTemplate - else: - nodeTemplate.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_wrap_void_AstDocumentEditor_string_wasm( - argsJsonString.cstring) - - -proc editor_ast_editPrevEmpty_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc editPrevEmpty*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_editPrevEmpty_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_editNextEmpty_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc editNextEmpty*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_editNextEmpty_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_rename_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc rename*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_rename_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_selectPrevCompletion_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc selectPrevCompletion*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_selectPrevCompletion_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_selectNextCompletion_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc selectNextCompletion*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_selectNextCompletion_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_applySelectedCompletion_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc applySelectedCompletion*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_applySelectedCompletion_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_cancelAndNextCompletion_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc cancelAndNextCompletion*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_cancelAndNextCompletion_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_cancelAndPrevCompletion_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc cancelAndPrevCompletion*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_cancelAndPrevCompletion_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_cancelAndDelete_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc cancelAndDelete*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_cancelAndDelete_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_moveNodeToPrevSpace_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc moveNodeToPrevSpace*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_moveNodeToPrevSpace_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_moveNodeToNextSpace_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc moveNodeToNextSpace*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_moveNodeToNextSpace_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_selectPrev_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc selectPrev*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_selectPrev_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_selectNext_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc selectNext*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_selectNext_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_openGotoSymbolPopup_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc openGotoSymbolPopup*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_openGotoSymbolPopup_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_goto_void_AstDocumentEditor_string_wasm(arg: cstring): cstring {. - importc.} -proc goto*(self: AstDocumentEditor; where: string) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - argsJson.add block: - when string is JsonNode: - where - else: - where.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_goto_void_AstDocumentEditor_string_wasm( - argsJsonString.cstring) - - -proc editor_ast_runSelectedFunction_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc runSelectedFunction*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_runSelectedFunction_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_toggleOption_void_AstDocumentEditor_string_wasm(arg: cstring): cstring {. - importc.} -proc toggleOption*(self: AstDocumentEditor; name: string) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - argsJson.add block: - when string is JsonNode: - name - else: - name.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_toggleOption_void_AstDocumentEditor_string_wasm( - argsJsonString.cstring) - - -proc editor_ast_runLastCommand_void_AstDocumentEditor_string_wasm(arg: cstring): cstring {. - importc.} -proc runLastCommand*(self: AstDocumentEditor; which: string) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - argsJson.add block: - when string is JsonNode: - which - else: - which.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_runLastCommand_void_AstDocumentEditor_string_wasm( - argsJsonString.cstring) - - -proc editor_ast_selectCenterNode_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc selectCenterNode*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_selectCenterNode_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_scroll_void_AstDocumentEditor_float32_wasm(arg: cstring): cstring {. - importc.} -proc scroll*(self: AstDocumentEditor; amount: float32) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - argsJson.add block: - when float32 is JsonNode: - amount - else: - amount.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_scroll_void_AstDocumentEditor_float32_wasm( - argsJsonString.cstring) - - -proc editor_ast_scrollOutput_void_AstDocumentEditor_string_wasm(arg: cstring): cstring {. - importc.} -proc scrollOutput*(self: AstDocumentEditor; arg: string) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - argsJson.add block: - when string is JsonNode: - arg - else: - arg.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_scrollOutput_void_AstDocumentEditor_string_wasm( - argsJsonString.cstring) - - -proc editor_ast_dumpContext_void_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc dumpContext*(self: AstDocumentEditor) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_dumpContext_void_AstDocumentEditor_wasm( - argsJsonString.cstring) - - -proc editor_ast_setMode_void_AstDocumentEditor_string_wasm(arg: cstring): cstring {. - importc.} -proc setMode*(self: AstDocumentEditor; mode: string) = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - argsJson.add block: - when string is JsonNode: - mode - else: - mode.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_setMode_void_AstDocumentEditor_string_wasm( - argsJsonString.cstring) - - -proc editor_ast_mode_string_AstDocumentEditor_wasm(arg: cstring): cstring {. - importc.} -proc mode*(self: AstDocumentEditor): string = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_mode_string_AstDocumentEditor_wasm( - argsJsonString.cstring) - result = parseJson($res).jsonTo(typeof(result)) - - -proc editor_ast_getContextWithMode_string_AstDocumentEditor_string_wasm( - arg: cstring): cstring {.importc.} -proc getContextWithMode*(self: AstDocumentEditor; context: string): string = - var argsJson = newJArray() - argsJson.add block: - when AstDocumentEditor is JsonNode: - self - else: - self.toJson() - argsJson.add block: - when string is JsonNode: - context - else: - context.toJson() - let argsJsonString = $argsJson - let res {.used.} = editor_ast_getContextWithMode_string_AstDocumentEditor_string_wasm( - argsJsonString.cstring) - result = parseJson($res).jsonTo(typeof(result)) - diff --git a/scripting/editor_model_api_wasm.nim b/scripting/editor_model_api_wasm.nim index 7055813b..a25badab 100644 --- a/scripting/editor_model_api_wasm.nim +++ b/scripting/editor_model_api_wasm.nim @@ -1,5 +1,5 @@ import std/[json] -import scripting_api, myjsonutils +import scripting_api, misc/myjsonutils ## This file is auto generated, don't modify. diff --git a/scripting/editor_text_api_wasm.nim b/scripting/editor_text_api_wasm.nim index f59f683d..036409a8 100644 --- a/scripting/editor_text_api_wasm.nim +++ b/scripting/editor_text_api_wasm.nim @@ -1,5 +1,5 @@ import std/[json] -import scripting_api, myjsonutils +import scripting_api, misc/myjsonutils ## This file is auto generated, don't modify. diff --git a/scripting/lsp_api_wasm.nim b/scripting/lsp_api_wasm.nim index 7e773641..36ea52ff 100644 --- a/scripting/lsp_api_wasm.nim +++ b/scripting/lsp_api_wasm.nim @@ -1,5 +1,5 @@ import std/[json] -import scripting_api, myjsonutils +import scripting_api, misc/myjsonutils ## This file is auto generated, don't modify. diff --git a/scripting/popup_selector_api_wasm.nim b/scripting/popup_selector_api_wasm.nim index 13c0d9ab..03e7cb00 100644 --- a/scripting/popup_selector_api_wasm.nim +++ b/scripting/popup_selector_api_wasm.nim @@ -1,5 +1,5 @@ import std/[json] -import scripting_api, myjsonutils +import scripting_api, misc/myjsonutils ## This file is auto generated, don't modify. diff --git a/src/absytree.nim b/src/absytree.nim index 47fca1b3..3b1fcf05 100644 --- a/src/absytree.nim +++ b/src/absytree.nim @@ -15,8 +15,8 @@ else: echo "Compiling for unknown" import std/[parseopt, options, macros] - -import compilation_config, custom_logger, scripting_api +import misc/[custom_logger] +import compilation_config, scripting_api logCategory "main" @@ -69,8 +69,9 @@ block: ## Enable loggers logger.enableConsoleLogger() import std/[strformat] -import util, app, timer, platform/widget_builders, platform/platform, custom_async -import language/language_server +import misc/[util, timer, custom_async] +import app, platform/widget_builders, platform/platform +import text/language/language_server when enableTerminal: import platform/terminal_platform diff --git a/src/absytree_js.nim b/src/absytree_js.nim index ea2dbfd4..ed301802 100644 --- a/src/absytree_js.nim +++ b/src/absytree_js.nim @@ -1,12 +1,13 @@ -import custom_logger +import misc/custom_logger logCategory "main-js" logger.enableConsoleLogger() import std/[strformat, dom, macros] -import util, app, timer, platform/widget_builders, platform/platform, platform/browser_platform, text/text_document, event, custom_async +import misc/[util, timer, event, custom_async] +import app, platform/widget_builders, platform/platform, platform/browser_platform, text/text_document import text/language/language_server from scripting_api import Backend diff --git a/src/app.nim b/src/app.nim index 231b4b7a..2c63826d 100644 --- a/src/app.nim +++ b/src/app.nim @@ -1,13 +1,13 @@ import std/[sequtils, strformat, strutils, tables, unicode, options, os, algorithm, json, macros, macrocache, sugar, streams, deques] -import input, id, events, rect_utils, document, document_editor, popup, timer, event, cancellation_token, dispatch_tables, myjsonutils, ui/node -import theme, util, custom_logger, custom_async, fuzzy_matching +import misc/[id, util, timer, event, cancellation_token, myjsonutils, traits, rect_utils, custom_logger, custom_async, fuzzy_matching] +import ui/node import scripting/[expose, scripting_base] import platform/[platform, filesystem] import workspaces/[workspace] import ast/model -import traits import config_provider, app_interface import text/language/language_server_base, language_server_absytree_commands +import input, events, document, document_editor, popup, dispatch_tables, theme when not defined(js): import scripting/scripting_nim diff --git a/src/app_interface.nim b/src/app_interface.nim index 60a7c1c4..2beb46e2 100644 --- a/src/app_interface.nim +++ b/src/app_interface.nim @@ -1,8 +1,9 @@ import std/[json, options] +import misc/[traits] import platform/platform import workspaces/workspace import text/language/language_server_base -import traits, events, document_editor, popup, config_provider +import events, document_editor, popup, config_provider from scripting_api import EditorId traitRef AppInterface: diff --git a/src/ast/ast_ids.nim b/src/ast/ast_ids.nim index 0b8aed32..bdc4b5c1 100644 --- a/src/ast/ast_ids.nim +++ b/src/ast/ast_ids.nim @@ -1,4 +1,5 @@ -import id, ast/model +import misc/id +import ast/model # base language diff --git a/src/ast/base_language.nim b/src/ast/base_language.nim index 510037d2..be1c31e3 100644 --- a/src/ast/base_language.nim +++ b/src/ast/base_language.nim @@ -1,7 +1,7 @@ import std/[tables, strformat] -import id, ast_ids, util, custom_logger -import model, cells, model_state, query_system, cell_builder_database +import misc/[id, util, custom_logger] import ui/node +import model, cells, model_state, query_system, cell_builder_database, ast_ids export id, ast_ids diff --git a/src/ast/base_language_wasm.nim b/src/ast/base_language_wasm.nim index f05fd141..84237b55 100644 --- a/src/ast/base_language_wasm.nim +++ b/src/ast/base_language_wasm.nim @@ -1,9 +1,9 @@ import std/[macros, genasts, strformat] import std/[options, tables] import fusion/matching -import model, ast_ids, custom_logger, util, base_language -import generator_wasm +import misc/[custom_logger, util] import scripting/[wasm_builder] +import model, ast_ids, base_language, generator_wasm logCategory "base-language-wasm" diff --git a/src/ast/cells.nim b/src/ast/cells.nim index e408befe..29b9e45f 100644 --- a/src/ast/cells.nim +++ b/src/ast/cells.nim @@ -1,7 +1,7 @@ import std/[tables, strutils, strformat, options, algorithm] import ui/node -import model, id, util, custom_logger, macro_utils -import ast_ids +import misc/[id, util, custom_logger, macro_utils] +import model, ast_ids logCategory "cells" diff --git a/src/ast/editor_language.nim b/src/ast/editor_language.nim index 4034dc0c..908f85fa 100644 --- a/src/ast/editor_language.nim +++ b/src/ast/editor_language.nim @@ -1,6 +1,6 @@ import std/[tables, strformat] import ui/node -import id, util, custom_logger +import misc/[id, util, custom_logger] import model, cells, base_language, cell_builder_database export base_language diff --git a/src/ast/editor_language_wasm.nim b/src/ast/editor_language_wasm.nim index a7a04ac3..95722a10 100644 --- a/src/ast/editor_language_wasm.nim +++ b/src/ast/editor_language_wasm.nim @@ -1,8 +1,8 @@ import std/[macros, genasts] import std/[tables] -import model, ast_ids, custom_logger, util, base_language, editor_language -import generator_wasm +import misc/[custom_logger, util] import scripting/[wasm_builder] +import model, ast_ids, base_language, editor_language, generator_wasm logCategory "editor-language-wasm" diff --git a/src/ast/generator_wasm.nim b/src/ast/generator_wasm.nim index 9c7a236e..8b4359e0 100644 --- a/src/ast/generator_wasm.nim +++ b/src/ast/generator_wasm.nim @@ -1,8 +1,9 @@ import std/[macros, genasts] import std/[options, tables] import fusion/matching -import id, model, custom_logger, util +import misc/[id, custom_logger, util] import scripting/[wasm_builder] +import model logCategory "generator-wasm" diff --git a/src/ast/lang/cell_language.nim b/src/ast/lang/cell_language.nim index 9f902c56..103a1e7e 100644 --- a/src/ast/lang/cell_language.nim +++ b/src/ast/lang/cell_language.nim @@ -1,5 +1,5 @@ import std/[tables, strformat, options, json] -import id, util, custom_logger +import misc/[id, util, custom_logger] import ui/node import ast/[model, cells, cell_builder_database, base_language] import lang_language diff --git a/src/ast/lang/lang_language.nim b/src/ast/lang/lang_language.nim index a4fa1427..38226813 100644 --- a/src/ast/lang/lang_language.nim +++ b/src/ast/lang/lang_language.nim @@ -1,5 +1,5 @@ import std/[tables, strformat, options, os] -import id, util, custom_logger +import misc/[id, util, custom_logger] import ui/node import ast/[ast_ids, model, cells, cell_builder_database, base_language] diff --git a/src/ast/model.nim b/src/ast/model.nim index 9015f583..216bd1c2 100644 --- a/src/ast/model.nim +++ b/src/ast/model.nim @@ -1,8 +1,8 @@ import std/[options, strutils, hashes, tables, strformat, sequtils, sets] import fusion/matching -import chroma +import chroma, regex +import misc/[util, array_table, myjsonutils, id, macro_utils, custom_logger, event, custom_async] import workspaces/[workspace] -import util, array_table, myjsonutils, id, macro_utils, custom_logger, event, regex, custom_async export id diff --git a/src/ast/model_document.nim b/src/ast/model_document.nim index 40a3e9f5..55a02a60 100644 --- a/src/ast/model_document.nim +++ b/src/ast/model_document.nim @@ -1,15 +1,16 @@ import std/[strformat, strutils, sugar, tables, options, json, streams, algorithm, sets, sequtils] -import fusion/matching, bumpy, rect_utils, vmath, fuzzy -import util, document, document_editor, text/text_document, events, id, scripting/expose, event, input, custom_async, myjsonutils, custom_unicode, delayed_task +import fusion/matching, bumpy, vmath, fuzzy +import misc/[util, custom_logger, timer, array_buffer, id, event, custom_async, myjsonutils, custom_unicode, delayed_task, fuzzy_matching, rect_utils] from scripting_api as api import nil -import custom_logger, timer, array_buffer, config_provider, app_interface, dispatch_tables, selector_popup, fuzzy_matching import platform/[filesystem, platform] import workspaces/[workspace] import ui/node -import model, base_language, editor_language, cells, ast_ids import lang/[lang_language, cell_language] import ast/[generator_wasm, base_language_wasm, editor_language_wasm, model_state, cell_builder_database] +import document, document_editor, text/text_document, events, scripting/expose, input +import config_provider, app_interface, dispatch_tables, selector_popup +import model, base_language, editor_language, cells, ast_ids logCategory "model" createJavascriptPrototype("editor.model") diff --git a/src/ast/model_state.nim b/src/ast/model_state.nim index d45df4ee..ea7ddd6f 100644 --- a/src/ast/model_state.nim +++ b/src/ast/model_state.nim @@ -1,8 +1,8 @@ import std/[tables, sets, strutils, hashes, options, strformat] import fusion/matching -import vmath -import lrucache -import id, util, timer, query_system, custom_logger, model, ast_ids +import vmath, lrucache +import misc/[id, util, timer, custom_logger] +import query_system, model, ast_ids logCategory "model-state" diff --git a/src/config_provider.nim b/src/config_provider.nim index beaf9f90..685736d6 100644 --- a/src/config_provider.nim +++ b/src/config_provider.nim @@ -1,5 +1,5 @@ import std/[json, options] -import traits, util +import misc/[traits, util] traitRef ConfigProvider: method getConfigValue(self: ConfigProvider, path: string): Option[JsonNode] diff --git a/src/custom_treesitter.nim b/src/custom_treesitter.nim index e9a84009..03598ecb 100644 --- a/src/custom_treesitter.nim +++ b/src/custom_treesitter.nim @@ -1,5 +1,5 @@ import std/[options, json] -import custom_logger, custom_async, util, custom_unicode +import misc/[custom_logger, custom_async, util, custom_unicode] from scripting_api import Cursor, Selection diff --git a/src/document.nim b/src/document.nim index 1fb1ef57..fe9fb131 100644 --- a/src/document.nim +++ b/src/document.nim @@ -1,7 +1,7 @@ import std/[options, os] +import misc/util import workspaces/[workspace] import platform/[filesystem] -import util type Document* = ref object of RootObj appFile*: bool ## Whether this is an application file (e.g. stored in local storage on the browser) diff --git a/src/document_editor.nim b/src/document_editor.nim index 33e1e2df..6391de1b 100644 --- a/src/document_editor.nim +++ b/src/document_editor.nim @@ -1,6 +1,7 @@ import std/[json] -import document, events, event, input, custom_logger, config_provider, id import vmath, bumpy +import misc/[event, custom_logger, id] +import document, events, input, config_provider from scripting_api import EditorId, newEditorId diff --git a/src/events.nim b/src/events.nim index b6303d9a..81da5201 100644 --- a/src/events.nim +++ b/src/events.nim @@ -1,5 +1,6 @@ import std/[tables, sequtils] -import input, custom_logger +import misc/custom_logger +import input logCategory "events" diff --git a/src/indent.nim b/src/indent.nim index 18159e37..1043c586 100644 --- a/src/indent.nim +++ b/src/indent.nim @@ -1,5 +1,6 @@ import std/strutils -import text_language_config, util +import misc/util +import text_language_config type IndentStyleKind* {.pure.} = enum Tabs, Spaces diff --git a/src/input.nim b/src/input.nim index aa1a04e3..e20a8bcb 100644 --- a/src/input.nim +++ b/src/input.nim @@ -1,5 +1,5 @@ import std/[strformat, strutils, tables, algorithm, unicode, sequtils] -import custom_logger +import misc/custom_logger logCategory "input" diff --git a/src/language_server_absytree_commands.nim b/src/language_server_absytree_commands.nim index beb22f35..d5d26ce8 100644 --- a/src/language_server_absytree_commands.nim +++ b/src/language_server_absytree_commands.nim @@ -1,8 +1,9 @@ import std/[options, tables, strutils] +import misc/[custom_logger, custom_async, util] import scripting_api except DocumentEditor, TextDocumentEditor, AstDocumentEditor -import text/language/language_server_base, util -import custom_logger, custom_async, dispatch_tables +import text/language/language_server_base import platform/filesystem +import dispatch_tables logCategory "language_server_absytree_commands" diff --git a/src/lsp_client.nim b/src/lsp_client.nim index 6a7bef79..585ba163 100644 --- a/src/lsp_client.nim +++ b/src/lsp_client.nim @@ -1,5 +1,5 @@ import std/[json, strutils, strformat, macros] -import custom_logger +import misc/[custom_logger] import scripting/expose logCategory "lsp" @@ -8,7 +8,8 @@ var logVerbose = false when not defined(js): import std/[tables, sets, os, options, uri, sequtils, sugar] - import myjsonutils, util, async_process, lsp_types, custom_async + import misc/[myjsonutils, util, async_process, custom_async] + import lsp_types export lsp_types diff --git a/src/lsp_types.nim b/src/lsp_types.nim index b49511d2..7a3f6bd6 100644 --- a/src/lsp_types.nim +++ b/src/lsp_types.nim @@ -1,5 +1,5 @@ import std/[json, strutils, tables, options, macros, genasts] -import myjsonutils +import misc/[myjsonutils] macro variant(name: untyped, types: varargs[untyped]): untyped = var variantType = quote do: diff --git a/src/platform/browser_platform.nim b/src/platform/browser_platform.nim index 8961110b..f805d49a 100644 --- a/src/platform/browser_platform.nim +++ b/src/platform/browser_platform.nim @@ -1,8 +1,9 @@ import std/[tables, dom, unicode, strutils, sugar] -import platform, custom_logger, rect_utils, input, event, lrucache, timer import vmath import chroma as chroma +import misc/[custom_logger, rect_utils, event, timer] import ui/node +import platform, input, lrucache when defined(uiNodeDebugData): import std/json diff --git a/src/platform/filesystem.nim b/src/platform/filesystem.nim index 8543849f..71efc97f 100644 --- a/src/platform/filesystem.nim +++ b/src/platform/filesystem.nim @@ -2,7 +2,7 @@ import std/[strutils, os] -import custom_async, array_buffer +import misc/[custom_async, array_buffer] type FileSystem* = ref object of RootObj discard diff --git a/src/platform/filesystem_browser.nim b/src/platform/filesystem_browser.nim index 67663fc1..ba970140 100644 --- a/src/platform/filesystem_browser.nim +++ b/src/platform/filesystem_browser.nim @@ -1,5 +1,6 @@ import std/[dom, tables] -import filesystem, custom_async, array_buffer +import misc/[custom_async, array_buffer] +import filesystem type FileSystemBrowser* = ref object of FileSystem discard diff --git a/src/platform/filesystem_desktop.nim b/src/platform/filesystem_desktop.nim index 367b08c3..dcc8bba5 100644 --- a/src/platform/filesystem_desktop.nim +++ b/src/platform/filesystem_desktop.nim @@ -1,5 +1,6 @@ import std/[os] -import filesystem, custom_logger +import misc/[custom_logger] +import filesystem logCategory "fs-desktop" diff --git a/src/platform/gui_platform.nim b/src/platform/gui_platform.nim index 70e61f83..ffba7900 100644 --- a/src/platform/gui_platform.nim +++ b/src/platform/gui_platform.nim @@ -1,8 +1,9 @@ import std/[tables, strutils, options, sets] -import platform, util, platform/filesystem -import custom_logger, input, event, monitors, lrucache, id, rect_utils, theme import chroma, vmath, windy, boxy, boxy/textures, opengl, pixie/[contexts, fonts] +import misc/[custom_logger, util, event, id, rect_utils] import ui/node +import platform, platform/filesystem +import input, monitors, lrucache, theme export platform diff --git a/src/platform/platform.nim b/src/platform/platform.nim index 714ad6fd..261e32c3 100644 --- a/src/platform/platform.nim +++ b/src/platform/platform.nim @@ -1,6 +1,7 @@ -import event, input import vmath import ui/node +import misc/[event] +import input export input, event diff --git a/src/platform/terminal_platform.nim b/src/platform/terminal_platform.nim index 56e0ce6f..b93539f8 100644 --- a/src/platform/terminal_platform.nim +++ b/src/platform/terminal_platform.nim @@ -1,9 +1,10 @@ import std/[strformat, terminal, typetraits, enumutils, strutils] -import platform -import tui, custom_logger, rect_utils, input, event, timer, custom_unicode, ui/node +import std/colors as stdcolors import vmath import chroma as chroma -import std/colors as stdcolors +import misc/[custom_logger, rect_utils, event, timer, custom_unicode] +import tui, input, ui/node +import platform export platform diff --git a/src/platform/tui.nim b/src/platform/tui.nim index bfadbad3..bafa1ea1 100644 --- a/src/platform/tui.nim +++ b/src/platform/tui.nim @@ -49,7 +49,7 @@ ## import macros, os, terminal, unicode, bitops, colors -import custom_logger, timer +import misc/[custom_logger, timer] export terminal.terminalWidth export terminal.terminalHeight diff --git a/src/platform/widget_builder_model_document.nim b/src/platform/widget_builder_model_document.nim index 0c0fc075..b0188e65 100644 --- a/src/platform/widget_builder_model_document.nim +++ b/src/platform/widget_builder_model_document.nim @@ -1,10 +1,11 @@ import std/[strformat, tables, sugar, strutils, json] import vmath, bumpy, chroma -import util, app, document_editor, custom_logger, platform, theme, config_provider, input, app_interface -import widget_builders_base, widget_library, custom_unicode +import misc/[util, custom_logger, custom_unicode] import ui/node import text/text_document import ast/[model_document, model, cells, model_state] +import app, document_editor, platform, theme, config_provider, input, app_interface +import widget_builders_base, widget_library # Mark this entire file as used, otherwise we get warnings when importing it but only calling a method {.used.} diff --git a/src/platform/widget_builder_selector_popup.nim b/src/platform/widget_builder_selector_popup.nim index 37e477b2..4e47695e 100644 --- a/src/platform/widget_builder_selector_popup.nim +++ b/src/platform/widget_builder_selector_popup.nim @@ -1,6 +1,7 @@ -import util, app, selector_popup, custom_logger, platform, theme, widget_builders_base import vmath, bumpy, chroma +import misc/[util, custom_logger] import ui/node +import app, selector_popup, platform, theme, widget_builders_base # Mark this entire file as used, otherwise we get warnings when importing it but only calling a method {.used.} diff --git a/src/platform/widget_builder_text_document.nim b/src/platform/widget_builder_text_document.nim index a516910b..1d79a062 100644 --- a/src/platform/widget_builder_text_document.nim +++ b/src/platform/widget_builder_text_document.nim @@ -1,7 +1,9 @@ import std/[strformat, tables, sugar, sequtils, strutils, algorithm, math] -import util, app, document_editor, text/text_editor, custom_logger, widget_builders_base, platform, theme, custom_unicode, config_provider, widget_library, app_interface -import scripting_api except DocumentEditor, TextDocumentEditor, AstDocumentEditor import vmath, bumpy, chroma +import misc/[util, custom_logger, custom_unicode] +import text/text_editor +import scripting_api except DocumentEditor, TextDocumentEditor, AstDocumentEditor +import app, document_editor, widget_builders_base, platform, theme, config_provider, widget_library, app_interface import ui/node diff --git a/src/platform/widget_builders.nim b/src/platform/widget_builders.nim index 9efc7176..6850863c 100644 --- a/src/platform/widget_builders.nim +++ b/src/platform/widget_builders.nim @@ -1,8 +1,8 @@ -import app, custom_logger, document_editor, platform, rect_utils, theme -import widget_builders_base, widget_builder_text_document, widget_builder_selector_popup, widget_builder_model_document import vmath, bumpy, chroma - +import misc/[custom_logger, rect_utils] import ui/node +import app, document_editor, platform, theme +import widget_builders_base, widget_builder_text_document, widget_builder_selector_popup, widget_builder_model_document logCategory "widget_builder" diff --git a/src/popup.nim b/src/popup.nim index 8829a8fb..d3cd8377 100644 --- a/src/popup.nim +++ b/src/popup.nim @@ -1,4 +1,6 @@ -import events, input, vmath, bumpy, event, id +import vmath, bumpy +import misc/[event, id] +import events, input from scripting_api import EditorId, newEditorId diff --git a/src/query_system.nim b/src/query_system.nim index 573c463d..2f127554 100644 --- a/src/query_system.nim +++ b/src/query_system.nim @@ -1,8 +1,7 @@ import std/[tables, sets, strutils, hashes, options, macros, strformat, genasts] -import timer import fusion/matching -import id, util, custom_logger, macro_utils import lrucache +import misc/[id, util, custom_logger, macro_utils, timer] {.experimental: "dynamicBindSym".} {.experimental: "caseStmtMacros".} diff --git a/src/scripting/expose.nim b/src/scripting/expose.nim index eff91145..3b1b8a49 100644 --- a/src/scripting/expose.nim +++ b/src/scripting/expose.nim @@ -1,10 +1,9 @@ import std/[json, strutils, sequtils, tables, options, macros, genasts, macrocache, typetraits, sugar] - import fusion/matching -import util, custom_logger, dispatch_tables, macro_utils, wrap -import compilation_config +import misc/[util, custom_logger, macro_utils, wrap] +import compilation_config, dispatch_tables when not defined(js): import nimscripter diff --git a/src/scripting/scripting_base.nim b/src/scripting/scripting_base.nim index 1a69cf3f..e5a7c124 100644 --- a/src/scripting/scripting_base.nim +++ b/src/scripting/scripting_base.nim @@ -1,5 +1,6 @@ import std/[macros, macrocache, json, strutils] -import custom_logger, custom_async, expose, popup, document_editor +import misc/[custom_logger, custom_async] +import expose, popup, document_editor type ScriptContext* = ref object of RootObj discard @@ -46,7 +47,7 @@ else: var script_api_content_wasm = """ import std/[json] -import scripting_api, myjsonutils +import scripting_api, misc/myjsonutils ## This file is auto generated, don't modify. @@ -62,8 +63,13 @@ import scripting_api, myjsonutils script_api_content_wasm.add "\n" let file_name = moduleName.replace(".", "_") + echo fmt"Writing scripting/{file_name}_api.nim" writeFile(fmt"scripting/{file_name}_api.nim", script_api_content) + + echo fmt"Writing scripting/{file_name}_api_wasm.nim" writeFile(fmt"scripting/{file_name}_api_wasm.nim", script_api_content_wasm) + + echo fmt"Writing int/{file_name}_api.map" writeFile(fmt"int/{file_name}_api.map", $mappings) imports_content.add "when defined(wasm):\n" imports_content.add fmt" import {file_name}_api_wasm" & "\n" @@ -73,4 +79,5 @@ import scripting_api, myjsonutils imports_content.add fmt" export {file_name}_api" & "\n" + echo fmt"Writing scripting/absytree_api.nim" writeFile(fmt"scripting/absytree_api.nim", imports_content) \ No newline at end of file diff --git a/src/scripting/scripting_js.nim b/src/scripting/scripting_js.nim index 1815f7a6..8b8d2da2 100644 --- a/src/scripting/scripting_js.nim +++ b/src/scripting/scripting_js.nim @@ -2,8 +2,9 @@ when not defined(js): {.error: "scripting_js.nim does not work in non-js backend. Use scripting_nim.nim instead.".} import std/[macros, dom, json] -import custom_logger, custom_async, scripting_base, popup, document_editor +import misc/[custom_logger, custom_async] import platform/filesystem +import scripting_base, popup, document_editor export scripting_base diff --git a/src/scripting/scripting_nim.nim b/src/scripting/scripting_nim.nim index da944aa1..38726743 100644 --- a/src/scripting/scripting_nim.nim +++ b/src/scripting/scripting_nim.nim @@ -8,9 +8,10 @@ import compiler/[renderer, ast, llstream, lineinfos] import compiler/options as copts from compiler/vmdef import TSandboxFlag import nimscripter, nimscripter/[vmconversion, vmaddins] -import platform/filesystem -import util, custom_logger, custom_async, scripting_base, compilation_config, popup, document_editor, timer +import misc/[util, custom_logger, custom_async, timer] +import platform/filesystem +import scripting_base, compilation_config, popup, document_editor import scripting_api as api except DocumentEditor, TextDocumentEditor, AstDocumentEditor, Popup, SelectorPopup export scripting_base, nimscripter @@ -94,7 +95,8 @@ proc createInterpreterAsync(args: (ptr Interpreter, string, seq[string], seq[(st let initCode = """ import std/[strformat, sequtils, macros, tables, options, sugar, strutils, genasts, json, typetraits] -import scripting_api, util, myjsonutils +import scripting_api +import misc/[util, myjsonutils] import absytree_runtime import keybindings_vim @@ -241,7 +243,7 @@ method init*(self: ScriptContextNim, path: string): Future[void] {.async.} = if self.inter.getSome(inter): await myLoadScript( inter, - self.script, self.apiModule, self.addins, self.postCodeAdditions, @["scripting_api", "std/json", "util", "myjsonutils"], + self.script, self.apiModule, self.addins, self.postCodeAdditions, @["scripting_api", "std/json", "misc/util", "misc/myjsonutils"], stdPath = self.stdPath, searchPaths = self.searchPaths, vmErrorHook = errorHook, moreAddins = timerAddins) if self.inter.isNone: log(lvlError, fmt"Failed to create script context") @@ -252,7 +254,7 @@ method reload*(ctx: ScriptContextNim) = proc generateScriptingApi*(addins: VMAddins) {.compileTime.} = if exposeScriptingApi: - echo "Generate scripting api files" + echo fmt"Generate scripting api files: {addins.procs.len} procs" var script_internal_content = """ ## This file is auto generated, don't modify. @@ -284,7 +286,9 @@ proc generateScriptingApi*(addins: VMAddins) {.compileTime.} = script_internal_wasm_content.add implWasm + echo fmt"Writing scripting/absytree_internal.nim" writeFile(fmt"scripting/absytree_internal.nim", script_internal_content) + echo fmt"Writing scripting/absytree_internal_wasm.nim" writeFile(fmt"scripting/absytree_internal_wasm.nim", script_internal_wasm_content) generateScriptingApiPerModule() diff --git a/src/scripting/scripting_wasm.nim b/src/scripting/scripting_wasm.nim index 32675734..e700921d 100644 --- a/src/scripting/scripting_wasm.nim +++ b/src/scripting/scripting_wasm.nim @@ -1,6 +1,7 @@ import std/[macros, macrocache, genasts, json] -import custom_logger, custom_async, scripting_base, popup, document_editor, util, expose +import misc/[custom_logger, custom_async, util] import platform/filesystem +import scripting_base, popup, document_editor, expose import wasm diff --git a/src/scripting/wasm.nim b/src/scripting/wasm.nim index a015315c..9e4a47da 100644 --- a/src/scripting/wasm.nim +++ b/src/scripting/wasm.nim @@ -1,5 +1,6 @@ import std/[macros, macrocache, strutils, json, options, tables, genasts] -import custom_logger, custom_async, util, array_buffer, platform/filesystem +import misc/[custom_logger, custom_async, util, array_buffer] +import platform/filesystem logCategory "wasi" diff --git a/src/scripting/wasm_builder.nim b/src/scripting/wasm_builder.nim index 31945b07..03485ae8 100644 --- a/src/scripting/wasm_builder.nim +++ b/src/scripting/wasm_builder.nim @@ -1,7 +1,6 @@ import std/[macrocache, json, options, tables, strutils, strformat, sequtils] +import misc/[util, custom_logger] import binary_encoder -import util -import custom_logger logCategory "wasm-builder" diff --git a/src/selector_popup.nim b/src/selector_popup.nim index 6766c6f3..8663e344 100644 --- a/src/selector_popup.nim +++ b/src/selector_popup.nim @@ -1,7 +1,7 @@ import std/[strutils, sugar, options, json, streams] import bumpy, vmath -import app_interface, text/text_editor, popup, events, util, rect_utils, scripting/expose, event, input, custom_async, custom_logger, cancellation_token, myjsonutils -import comb_sort, timer +import misc/[util, rect_utils, comb_sort, timer, event, custom_async, custom_logger, cancellation_token, myjsonutils] +import app_interface, text/text_editor, popup, events, scripting/expose, input from scripting_api as api import nil export popup diff --git a/src/text/language/language_server.nim b/src/text/language/language_server.nim index e65b2803..3dee8d09 100644 --- a/src/text/language/language_server.nim +++ b/src/text/language/language_server.nim @@ -1,9 +1,6 @@ import std/[options] -import custom_async, util - -import language_server_base - -import language_server_nimsuggest +import misc/[custom_async, util] +import language_server_base, language_server_nimsuggest when not defined(js): import language_server_lsp diff --git a/src/text/language/language_server_base.nim b/src/text/language/language_server_base.nim index 074fd419..3db52777 100644 --- a/src/text/language/language_server_base.nim +++ b/src/text/language/language_server_base.nim @@ -1,5 +1,5 @@ import std/[options, tables] -import custom_async, custom_logger +import misc/[custom_async, custom_logger] import scripting_api except DocumentEditor, TextDocumentEditor, AstDocumentEditor type OnRequestSaveHandle* = distinct int diff --git a/src/text/language/language_server_lsp.nim b/src/text/language/language_server_lsp.nim index ee141daa..49b749a1 100644 --- a/src/text/language/language_server_lsp.nim +++ b/src/text/language/language_server_lsp.nim @@ -1,6 +1,7 @@ import std/[strutils, options, json, tables, uri, strformat] import scripting_api except DocumentEditor, TextDocumentEditor, AstDocumentEditor -import language_server_base, event, util, app, app_interface, config_provider, text/text_editor, custom_logger, custom_async, lsp_client, myjsonutils +import misc/[event, util, custom_logger, custom_async, myjsonutils] +import language_server_base, app, app_interface, config_provider, text/text_editor, lsp_client logCategory "lsp" diff --git a/src/text/language/language_server_nimsuggest.nim b/src/text/language/language_server_nimsuggest.nim index 3a02a847..f44819ec 100644 --- a/src/text/language/language_server_nimsuggest.nim +++ b/src/text/language/language_server_nimsuggest.nim @@ -1,8 +1,8 @@ import std/[strutils, options, json, tables, macros, strformat, sugar] import scripting_api except DocumentEditor, TextDocumentEditor, AstDocumentEditor -import language_server_base, util -import custom_logger, custom_async, async_http_client, websocket +import misc/[custom_logger, custom_async, async_http_client, websocket, util] import platform/filesystem +import language_server_base logCategory "ls-nimsuggest" diff --git a/src/text/language/languages.nim b/src/text/language/languages.nim index f4b19775..54cd3ee4 100644 --- a/src/text/language/languages.nim +++ b/src/text/language/languages.nim @@ -1,5 +1,5 @@ import std/[options, os] -import custom_logger +import misc/custom_logger proc getLanguageForFile*(filename: string): Option[string] = var extension = filename.splitFile.ext diff --git a/src/text/text_document.nim b/src/text/text_document.nim index 6561d96c..a04e5b35 100644 --- a/src/text/text_document.nim +++ b/src/text/text_document.nim @@ -2,12 +2,11 @@ import std/[os, strutils, sequtils, sugar, options, json, strformat, tables] import scripting_api except DocumentEditor, TextDocumentEditor, AstDocumentEditor from scripting_api as api import nil import patty, bumpy -import document, document_editor, id, util, event, ../regex, custom_logger, custom_async, custom_treesitter, indent, custom_unicode, myjsonutils -import text_language_config +import misc/[id, util, event, custom_logger, custom_async, custom_unicode, myjsonutils, regex] import platform/[filesystem] import language/[languages, language_server_base] import workspaces/[workspace] -import config_provider +import document, document_editor, custom_treesitter, indent, text_language_config, config_provider export document, document_editor, id diff --git a/src/text/text_editor.nim b/src/text/text_editor.nim index dca1a69a..7e36cd15 100644 --- a/src/text/text_editor.nim +++ b/src/text/text_editor.nim @@ -1,15 +1,13 @@ import std/[strutils, sequtils, sugar, options, json, streams, strformat, tables, deques, sets, algorithm] import scripting_api except DocumentEditor, TextDocumentEditor, AstDocumentEditor from scripting_api as api import nil -import document, document_editor, events, id, util, vmath, bumpy, rect_utils, event, input, ../regex, custom_logger, custom_async, custom_treesitter, indent, fuzzy_matching, custom_unicode -import myjsonutils +import misc/[id, util, rect_utils, event, custom_logger, custom_async, fuzzy_matching, custom_unicode, delayed_task, myjsonutils, regex] import scripting/[expose] import platform/[platform, filesystem] import language/[language_server_base] import workspaces/[workspace] -import text_document +import document, document_editor, events, vmath, bumpy, input, custom_treesitter, indent, text_document import config_provider, app_interface -import delayed_task export text_document, document_editor, id diff --git a/src/text_language_config.nim b/src/text_language_config.nim index 1668e811..2adbad72 100644 --- a/src/text_language_config.nim +++ b/src/text_language_config.nim @@ -1,5 +1,5 @@ import std/[options, json] -import myjsonutils +import misc/[myjsonutils] type TextLanguageConfig* = ref object diff --git a/src/theme.nim b/src/theme.nim index bf4a3339..f7bbf3f3 100644 --- a/src/theme.nim +++ b/src/theme.nim @@ -1,7 +1,7 @@ import std/[json, tables, strutils, options] import chroma -import custom_logger, platform/[filesystem] -import myjsonutils +import misc/[custom_logger, myjsonutils] +import platform/[filesystem] logCategory "theme" diff --git a/src/ui/node.nim b/src/ui/node.nim index e648d1e6..9222c971 100644 --- a/src/ui/node.nim +++ b/src/ui/node.nim @@ -1,8 +1,8 @@ import std/[os, macros, genasts, strutils, sequtils, sugar, strformat, options, tables, sets] import fusion/matching -import macro_utils, util, id, input, custom_unicode, array_set -import chroma, vmath, rect_utils -import custom_logger +import chroma, vmath +import misc/[macro_utils, util, id, custom_unicode, array_set, rect_utils, custom_logger] +import input export util, id, input, chroma, vmath, rect_utils diff --git a/src/workspaces/workspace.nim b/src/workspaces/workspace.nim index ecc48fe5..3951ece2 100644 --- a/src/workspaces/workspace.nim +++ b/src/workspaces/workspace.nim @@ -1,5 +1,5 @@ import std/[json, options, os] -import custom_async, id, array_buffer, cancellation_token +import misc/[custom_async, id, array_buffer, cancellation_token] type Workspace* = ref object diff --git a/src/workspaces/workspace_absytree_server.nim b/src/workspaces/workspace_absytree_server.nim index 935a511c..8b905cc5 100644 --- a/src/workspaces/workspace_absytree_server.nim +++ b/src/workspaces/workspace_absytree_server.nim @@ -1,5 +1,6 @@ import std/[tables, json, options] -import workspace, custom_async, custom_logger, async_http_client, platform/filesystem, array_buffer +import misc/[custom_async, custom_logger, async_http_client, array_buffer] +import workspace, platform/filesystem logCategory "ws-absytree-server" diff --git a/src/workspaces/workspace_github.nim b/src/workspaces/workspace_github.nim index 61b8b5d3..0df4d4ac 100644 --- a/src/workspaces/workspace_github.nim +++ b/src/workspaces/workspace_github.nim @@ -1,5 +1,6 @@ import std/[os, tables, json, base64, strutils, options] -import workspace, custom_async, custom_logger, async_http_client, platform/filesystem +import misc/[custom_async, custom_logger, async_http_client] +import workspace, platform/filesystem logCategory "ws-github" diff --git a/src/workspaces/workspace_local.nim b/src/workspaces/workspace_local.nim index b32994f1..99e56652 100644 --- a/src/workspaces/workspace_local.nim +++ b/src/workspaces/workspace_local.nim @@ -1,5 +1,6 @@ import std/[os, json] -import workspace, custom_async, custom_logger +import misc/[custom_async, custom_logger] +import workspace logCategory "ws-local" diff --git a/tools/package_release.nims b/tools/package_release.nims index 2f01dccc..3b3fd2ec 100644 --- a/tools/package_release.nims +++ b/tools/package_release.nims @@ -47,13 +47,13 @@ proc copySharedFilesTo(dir: string) = cpDir2 "docs", dir mkDir dir/"src" cpFile2 "src/scripting_api.nim", dir/"src" - cpFile2 "src/timer.nim", dir/"src" - cpFile2 "src/id.nim", dir/"src" - cpFile2 "src/myjsonutils.nim", dir/"src" - cpFile2 "src/event.nim", dir/"src" - cpFile2 "src/util.nim", dir/"src" - cpFile2 "src/macro_utils.nim", dir/"src" - cpFile2 "src/wrap.nim", dir/"src" + cpFile2 "src/misc/timer.nim", dir/"src/misc" + cpFile2 "src/misc/id.nim", dir/"src/misc" + cpFile2 "src/misc/myjsonutils.nim", dir/"src/misc" + cpFile2 "src/misc/event.nim", dir/"src/misc" + cpFile2 "src/misc/util.nim", dir/"src/misc" + cpFile2 "src/misc/macro_utils.nim", dir/"src/misc" + cpFile2 "src/misc/wrap.nim", dir/"src/misc" cpDir2 "LICENSES", dir cpFile2 "LICENSE", dir cpFile2 "absytree.nimble", dir