From 87367b168e47a9e59e96abb5f25aebd8e51b501e Mon Sep 17 00:00:00 2001 From: Julian Egbert Date: Wed, 16 Jun 2021 16:36:53 +0200 Subject: [PATCH 1/6] Two separate yellowButtonMenus for selection --- .../MarkdownEditor.class/instance/textSelected.st | 4 ++++ .../instance/yellowButtonMenu..st | 4 +++- .../instance/yellowButtonMenuItems.st | 4 ---- .../instance/yellowButtonMenuItemsSelection.st | 11 +++++++++++ .../MarkdownEditor.class/methodProperties.json | 6 ++++-- 5 files changed, 22 insertions(+), 7 deletions(-) create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/textSelected.st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItemsSelection.st diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/textSelected.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/textSelected.st new file mode 100644 index 00000000..26117ae7 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/textSelected.st @@ -0,0 +1,4 @@ +text interaction +textSelected + + ^ (self textMorph textMorph selection = '') not \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenu..st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenu..st index 795e7605..e1879f85 100644 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenu..st +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenu..st @@ -1,4 +1,6 @@ yellowButtonMenu yellowButtonMenu: aMenu - ^ aMenu addList: self yellowButtonMenuItems; yourself \ No newline at end of file + self textSelected + ifTrue: [^ aMenu addList: self yellowButtonMenuItemsSelection; yourself] + ifFalse:[^ aMenu addList: self yellowButtonMenuItems; yourself] \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItems.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItems.st index 25c39c17..445723e9 100644 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItems.st +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItems.st @@ -9,10 +9,6 @@ yellowButtonMenuItems {'save' translated. #saveText}. {'save as...' translated. #saveAsFileDialog}. #-. - {'italic' translated. #applyItalic}. - {'bold' translated. #applyBold}. - {'strikeout' translated. #applyStrikeout}. - #-. {'convert to html' translated. #convertToHTML}. #-. {'appearance...' translated. #openSettings} diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItemsSelection.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItemsSelection.st new file mode 100644 index 00000000..72e635fa --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItemsSelection.st @@ -0,0 +1,11 @@ +yellowButtonMenu +yellowButtonMenuItemsSelection + + | entries | + entries := OrderedCollection withAll: + { + {'italic' translated. #applyItalic}. + {'bold' translated. #applyBold}. + {'strikeout' translated. #applyStrikeout} + }. + ^ entries \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/methodProperties.json b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/methodProperties.json index f6ea20f1..5b2bd69f 100644 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/methodProperties.json +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/methodProperties.json @@ -37,9 +37,11 @@ "saveTextInModel" : "MK 7/6/2020 14:40", "textMorph" : "cg 7/5/2020 12:21", "textMorph:" : "cg 7/5/2020 12:21", + "textSelected" : "JE 6/16/2021 16:32", "window" : "jh 5/27/2021 09:41", "window:" : "jh 5/27/2021 09:41", "windowSpecsFor:" : "F.S 5/26/2021 11:35", "windowTitle" : "MK 5/11/2020 19:00", - "yellowButtonMenu:" : "F.S 6/9/2021 10:53", - "yellowButtonMenuItems" : "F.S 6/9/2021 10:52" } } + "yellowButtonMenu:" : "JE 6/16/2021 16:33", + "yellowButtonMenuItems" : "JE 6/16/2021 16:33", + "yellowButtonMenuItemsSelection" : "JE 6/16/2021 16:31" } } From 5cadb11b8c94f2663214ecf1e4c98ce718e07e58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Finn=20Sch=C3=B6llkopf?= Date: Sat, 10 Jul 2021 18:16:25 +0200 Subject: [PATCH 2/6] add find and replace (all), find, etc. --- .../MarkdownEditor.class/instance/findAndReplaceAll.st | 10 ++++++++++ .../instance/yellowButtonMenuItems.st | 6 ++++++ .../instance/yellowButtonMenuItemsSelection.st | 8 +++++++- .../MarkdownEditor.class/methodProperties.json | 5 +++-- 4 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/findAndReplaceAll.st diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/findAndReplaceAll.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/findAndReplaceAll.st new file mode 100644 index 00000000..3eba44fe --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/findAndReplaceAll.st @@ -0,0 +1,10 @@ +text interaction +findAndReplaceAll + + | continue | + self textMorph setSelection: #(1. 0). + self textMorph findReplace. + continue := true. + [continue] whileTrue: [ + continue := self textMorph handleEdit: [self textMorph textMorph editor again]] + \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItems.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItems.st index 445723e9..98ef0cf4 100644 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItems.st +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItems.st @@ -9,6 +9,12 @@ yellowButtonMenuItems {'save' translated. #saveText}. {'save as...' translated. #saveAsFileDialog}. #-. + {'find...(f)' translated. #find}. + {'find again (g)' translated. #findAgain}. + {'find and replace ...' translated. #findReplace}. + {'do/replace again (j)' translated. #again}. + {'find and replace all' translated. #findAndReplaceAll}. + #-. {'convert to html' translated. #convertToHTML}. #-. {'appearance...' translated. #openSettings} diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItemsSelection.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItemsSelection.st index 72e635fa..3fa08448 100644 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItemsSelection.st +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItemsSelection.st @@ -6,6 +6,12 @@ yellowButtonMenuItemsSelection { {'italic' translated. #applyItalic}. {'bold' translated. #applyBold}. - {'strikeout' translated. #applyStrikeout} + {'strikeout' translated. #applyStrikeout}. + #-. + {'find...(f)' translated. #find}. + {'find again (g)' translated. #findAgain}. + {'find and replace ...' translated. #findReplace}. + {'do/replace again (j)' translated. #again}. + {'find and replace all' translated. #findAndReplaceAll} }. ^ entries \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/methodProperties.json b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/methodProperties.json index 5b2bd69f..c9ffad00 100644 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/methodProperties.json +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/methodProperties.json @@ -20,6 +20,7 @@ "currentFilePath:" : "MK 7/6/2020 14:37", "defaultFilename" : "F.S 5/26/2021 11:24", "fileEnding" : "JE 5/5/2021 17:51", + "findAndReplaceAll" : "F.S 7/10/2021 18:14", "handleClose" : "jh 5/29/2021 10:50", "initialize" : "azi 8/6/2020 06:56", "markdownText" : "lpf 6/13/2019 15:26", @@ -43,5 +44,5 @@ "windowSpecsFor:" : "F.S 5/26/2021 11:35", "windowTitle" : "MK 5/11/2020 19:00", "yellowButtonMenu:" : "JE 6/16/2021 16:33", - "yellowButtonMenuItems" : "JE 6/16/2021 16:33", - "yellowButtonMenuItemsSelection" : "JE 6/16/2021 16:31" } } + "yellowButtonMenuItems" : "F.S 7/10/2021 17:41", + "yellowButtonMenuItemsSelection" : "F.S 7/10/2021 17:41" } } From 7798f5ed8104cf55874c8e10ab8e568d6766009c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Finn=20Sch=C3=B6llkopf?= Date: Sat, 10 Jul 2021 18:41:30 +0200 Subject: [PATCH 3/6] add test --- .../instance/testYellowButtonMenuExists.st | 19 +++++++++++++++---- .../methodProperties.json | 3 ++- .../MarkdownColorChooser.class/README.md | 11 +++++++++++ .../properties.json | 2 +- 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testYellowButtonMenuExists.st b/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testYellowButtonMenuExists.st index f3487e2c..4b585568 100644 --- a/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testYellowButtonMenuExists.st +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testYellowButtonMenuExists.st @@ -1,10 +1,21 @@ tests - menu testYellowButtonMenuExists - | textMorph menu items| + | textMorph normalItems selectionItems normalMenu selectionMenu| textMorph := window submorphs detect: [:each | each isKindOf: PluggableTextMorphPlus] ifNone: [self error: 'No yellowButtonMenu found.']. - menu := textMorph getMenu: false. - items := editor yellowButtonMenuItems reject: [:each| each isSymbol]. - self assert: items size equals: menu items size \ No newline at end of file + normalMenu := textMorph getMenu: false. + normalItems := editor yellowButtonMenuItems reject: [:each| each isSymbol]. + self assert: normalItems size equals: normalMenu items size. + + editor markdownText: 'Hello World'. + textMorph selectAll. + selectionMenu := textMorph getMenu: false. + selectionItems := editor yellowButtonMenuItemsSelection reject: [:each| each isSymbol]. + self assert: selectionItems size equals: selectionMenu items size. + + self assert: [(selectionItems literalEqual: normalItems) not] + + + \ No newline at end of file diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/methodProperties.json b/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/methodProperties.json index 97bfea75..6a430ce1 100644 --- a/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/methodProperties.json +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/methodProperties.json @@ -13,6 +13,7 @@ "testApplyInlineWithSpaces" : "F.S 6/9/2021 11:55", "testApplyTheme" : "jh 5/31/2021 17:17", "testApplyThemeDoesNotThrowErrorForInlineStyling" : "F.S 6/9/2021 11:40", + "testApplyingThemeDoesNotThrowErrorForBlockStyling" : " 7/10/2021 17:37:02", "testBuildingEditorReturnsWindow" : "JE 5/26/2021 13:17", "testBuildingEditorTextMorphReturnsSpec" : "JE 5/26/2021 13:17", "testConvertToHtml" : "jh 5/29/2021 11:42", @@ -29,4 +30,4 @@ "testWindowClose" : "JE 6/1/2021 16:09", "testWindowCreation" : "JE 5/26/2021 13:14", "testWindowLabel" : "JE 5/26/2021 13:14", - "testYellowButtonMenuExists" : "JE 5/26/2021 13:14" } } + "testYellowButtonMenuExists" : "F.S 7/10/2021 18:41" } } diff --git a/packages/MarkdownEditor-Utilities.package/MarkdownColorChooser.class/README.md b/packages/MarkdownEditor-Utilities.package/MarkdownColorChooser.class/README.md index e69de29b..d241ab9f 100644 --- a/packages/MarkdownEditor-Utilities.package/MarkdownColorChooser.class/README.md +++ b/packages/MarkdownEditor-Utilities.package/MarkdownColorChooser.class/README.md @@ -0,0 +1,11 @@ +A MarkdownColorChooser is a Tool for choosing colors. If you want to be informed when color changes become a dependent + +Instance Variables + advancedColorPicker: + simpleColorChoosers: + +advancedColorPicker + - is a ColorPickerMorph + +simpleColorChoosers + - a Collection of SimpleButtons, set colors in defaultColor diff --git a/packages/MarkdownEditor-Utilities.package/MarkdownColorChooser.class/properties.json b/packages/MarkdownEditor-Utilities.package/MarkdownColorChooser.class/properties.json index 26ec67ed..df7e27a6 100644 --- a/packages/MarkdownEditor-Utilities.package/MarkdownColorChooser.class/properties.json +++ b/packages/MarkdownEditor-Utilities.package/MarkdownColorChooser.class/properties.json @@ -4,7 +4,7 @@ ], "classvars" : [ ], - "commentStamp" : "", + "commentStamp" : "jh 7/1/2021 12:26", "instvars" : [ "advancedColorPicker", "simpleColorChoosers" ], From 66c117d88d36f25358ab42e880d1e05104936be9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Finn=20Sch=C3=B6llkopf?= Date: Sat, 10 Jul 2021 20:09:31 +0200 Subject: [PATCH 4/6] add more options for textSelection --- .../addButtonMenuItemsSelectionTo..st | 17 ++++++++++++++ .../instance/addButtonMenuItemsTo..st | 23 +++++++++++++++++++ ...Selection.st => addFindReplaceItemsTo..st} | 13 +++++------ .../instance/addHeadingMenuItemsTo..st | 5 ++++ .../instance/addInlineItemsTo..st | 14 +++++++++++ .../instance/addLinkMenuItemsTo..st | 11 +++++++++ .../instance/applyAutoLink.st | 6 +++++ .../instance/applyBlockquote.st | 6 +++++ .../instance/applyHeadingAt..st | 5 ++++ .../instance/applyHeadingOnSelectionWith..st | 13 +++++++++++ .../instance/applyImageDestination.st | 6 +++++ .../instance/applyImageText.st | 6 +++++ .../instance/applyInlineCode.st | 4 ++++ .../instance/applyLinkDestination.st | 6 +++++ .../instance/applyLinkText.st | 6 +++++ .../instance/yellowButtonMenu..st | 5 ++-- .../instance/yellowButtonMenuItems.st | 22 ------------------ .../methodProperties.json | 19 ++++++++++++--- 18 files changed, 153 insertions(+), 34 deletions(-) create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addButtonMenuItemsSelectionTo..st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addButtonMenuItemsTo..st rename packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/{yellowButtonMenuItemsSelection.st => addFindReplaceItemsTo..st} (55%) create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addHeadingMenuItemsTo..st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addInlineItemsTo..st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addLinkMenuItemsTo..st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyAutoLink.st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyBlockquote.st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyHeadingAt..st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyHeadingOnSelectionWith..st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyImageDestination.st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyImageText.st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyInlineCode.st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyLinkDestination.st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyLinkText.st delete mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItems.st diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addButtonMenuItemsSelectionTo..st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addButtonMenuItemsSelectionTo..st new file mode 100644 index 00000000..f444c588 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addButtonMenuItemsSelectionTo..st @@ -0,0 +1,17 @@ +yellowButtonMenu +addButtonMenuItemsSelectionTo: aMenu + + | entries | + entries := OrderedCollection withAll: + { + {'italic' translated. #applyItalic}. + {'bold' translated. #applyBold}. + {'strikeout' translated. #applyStrikeout}. + }. + aMenu + addList: entries; + add: 'heading' subMenu: (self addHeadingMenuItemsTo: MenuMorph new); + add: 'link' subMenu: (self addLinkMenuItemsTo: MenuMorph new); + add: 'blockquote' action: [self applyBlockquote]; + yourself. + ^ self addFindReplaceItemsTo: aMenu \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addButtonMenuItemsTo..st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addButtonMenuItemsTo..st new file mode 100644 index 00000000..5408862c --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addButtonMenuItemsTo..st @@ -0,0 +1,23 @@ +yellowButtonMenu +addButtonMenuItemsTo: aMenu + + | fileSystem other | + fileSystem := OrderedCollection withAll: + { + {'new' translated. #createNewInstance}. + {'open...' translated. #openFileDialog}. + {'save' translated. #saveText}. + {'save as...' translated. #saveAsFileDialog}. + #-. + }. + other := OrderedCollection withAll: + { + #-. + {'convert to html' translated. #convertToHTML}. + #-. + {'appearance...' translated. #openSettings} + }. + aMenu addList: fileSystem. + self addFindReplaceItemsTo: aMenu. + aMenu addList: other. + ^ aMenu \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItemsSelection.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addFindReplaceItemsTo..st similarity index 55% rename from packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItemsSelection.st rename to packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addFindReplaceItemsTo..st index 3fa08448..1e321060 100644 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItemsSelection.st +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addFindReplaceItemsTo..st @@ -1,12 +1,9 @@ yellowButtonMenu -yellowButtonMenuItemsSelection +addFindReplaceItemsTo: aMenu - | entries | - entries := OrderedCollection withAll: + | inline| + inline := OrderedCollection withAll: { - {'italic' translated. #applyItalic}. - {'bold' translated. #applyBold}. - {'strikeout' translated. #applyStrikeout}. #-. {'find...(f)' translated. #find}. {'find again (g)' translated. #findAgain}. @@ -14,4 +11,6 @@ yellowButtonMenuItemsSelection {'do/replace again (j)' translated. #again}. {'find and replace all' translated. #findAndReplaceAll} }. - ^ entries \ No newline at end of file + ^ aMenu + addList: inline; + yourself \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addHeadingMenuItemsTo..st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addHeadingMenuItemsTo..st new file mode 100644 index 00000000..7a838846 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addHeadingMenuItemsTo..st @@ -0,0 +1,5 @@ +yellowButtonMenu +addHeadingMenuItemsTo: aMenu + + 1 to: 6 do: [:i | aMenu add: 'level ', i action: [self applyHeadingAt: i]]. + ^ aMenu \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addInlineItemsTo..st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addInlineItemsTo..st new file mode 100644 index 00000000..bce0c835 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addInlineItemsTo..st @@ -0,0 +1,14 @@ +yellowButtonMenu +addInlineItemsTo: aMenu + + | inline| + inline := OrderedCollection withAll: + { + {'italic' translated. #applyItalic}. + {'bold' translated. #applyBold}. + {'strikeout' translated. #applyStrikeout}. + }. + ^ aMenu + addList: inline; + add: 'heading' subMenu: (MenuMorph new addList: self yellowButtonMenuItemsSelection); + yourself \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addLinkMenuItemsTo..st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addLinkMenuItemsTo..st new file mode 100644 index 00000000..2f4fe3f3 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addLinkMenuItemsTo..st @@ -0,0 +1,11 @@ +yellowButtonMenu +addLinkMenuItemsTo: aMenu + aMenu + add: '[...]()' action: [self applyLinkText]; + add: '[](...)' action: [self applyLinkDestination]; + add: '<...>' action: [self applyAutoLink]; + addLine; + add: '![...]()' action: [self applyImageText]; + add: '![](...)' action: [self applyImageDestination]; + yourself. + ^ aMenu \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyAutoLink.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyAutoLink.st new file mode 100644 index 00000000..346c6640 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyAutoLink.st @@ -0,0 +1,6 @@ +text interaction +applyAutoLink + + | selection | + selection := self textMorph textMorph selection. + self textMorph replaceSelectionWith: '<', selection, '>' diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyBlockquote.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyBlockquote.st new file mode 100644 index 00000000..b3eebef6 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyBlockquote.st @@ -0,0 +1,6 @@ +text interaction +applyBlockquote + + | selection | + selection := self textMorph textMorph selection. + self textMorph replaceSelectionWith: '>', selection diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyHeadingAt..st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyHeadingAt..st new file mode 100644 index 00000000..46cfbe6b --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyHeadingAt..st @@ -0,0 +1,5 @@ +text interaction +applyHeadingAt: aLevel + + self applyHeadingOnSelectionWith: aLevel + \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyHeadingOnSelectionWith..st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyHeadingOnSelectionWith..st new file mode 100644 index 00000000..93d36897 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyHeadingOnSelectionWith..st @@ -0,0 +1,13 @@ +text interaction +applyHeadingOnSelectionWith: aLevel + + | selection matcher prefix suffix content | + selection := self textMorph textMorph selection. + matcher := RxMatcher forString: '(#*)(\s*)(\S.*\S|\S)(\s*)'. + (matcher matches: selection) ifFalse: [^ nil]. + + content := matcher subexpression: 4. + suffix := matcher subexpression: 5. + prefix := ''. + aLevel timesRepeat: [prefix := prefix, '#']. + self textMorph replaceSelectionWith: prefix, Character space, content, Character cr \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyImageDestination.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyImageDestination.st new file mode 100644 index 00000000..d38fd3c3 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyImageDestination.st @@ -0,0 +1,6 @@ +text interaction +applyImageDestination + + | selection | + selection := self textMorph textMorph selection. + self textMorph replaceSelectionWith: '![', selection, '](image destination)' diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyImageText.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyImageText.st new file mode 100644 index 00000000..6b34f374 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyImageText.st @@ -0,0 +1,6 @@ +text interaction +applyImageText + + | selection | + selection := self textMorph textMorph selection. + self textMorph replaceSelectionWith: '![image text](', selection, ')' \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyInlineCode.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyInlineCode.st new file mode 100644 index 00000000..a8d5ca3b --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyInlineCode.st @@ -0,0 +1,4 @@ +text interaction +applyInlineCode + + self applyInlineOnSelectionWith: '~~' \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyLinkDestination.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyLinkDestination.st new file mode 100644 index 00000000..d0aa753d --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyLinkDestination.st @@ -0,0 +1,6 @@ +text interaction +applyLinkDestination + + | selection | + selection := self textMorph textMorph selection. + self textMorph replaceSelectionWith: '[link text](', selection, ')' diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyLinkText.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyLinkText.st new file mode 100644 index 00000000..007e2045 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyLinkText.st @@ -0,0 +1,6 @@ +text interaction +applyLinkText + + | selection | + selection := self textMorph textMorph selection. + self textMorph replaceSelectionWith: '[', selection, '](link destination)' \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenu..st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenu..st index e1879f85..d6df2ddc 100644 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenu..st +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenu..st @@ -2,5 +2,6 @@ yellowButtonMenu yellowButtonMenu: aMenu self textSelected - ifTrue: [^ aMenu addList: self yellowButtonMenuItemsSelection; yourself] - ifFalse:[^ aMenu addList: self yellowButtonMenuItems; yourself] \ No newline at end of file + ifTrue: [self addButtonMenuItemsSelectionTo: aMenu] + ifFalse: [self addButtonMenuItemsTo: aMenu]. + ^ aMenu \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItems.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItems.st deleted file mode 100644 index 98ef0cf4..00000000 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenuItems.st +++ /dev/null @@ -1,22 +0,0 @@ -yellowButtonMenu -yellowButtonMenuItems - - | entries | - entries := OrderedCollection withAll: - { - {'new' translated. #createNewInstance}. - {'open...' translated. #openFileDialog}. - {'save' translated. #saveText}. - {'save as...' translated. #saveAsFileDialog}. - #-. - {'find...(f)' translated. #find}. - {'find again (g)' translated. #findAgain}. - {'find and replace ...' translated. #findReplace}. - {'do/replace again (j)' translated. #again}. - {'find and replace all' translated. #findAndReplaceAll}. - #-. - {'convert to html' translated. #convertToHTML}. - #-. - {'appearance...' translated. #openSettings} - }. - ^ entries \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/methodProperties.json b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/methodProperties.json index c9ffad00..2452248d 100644 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/methodProperties.json +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/methodProperties.json @@ -5,9 +5,24 @@ "initialize" : "lpf 6/13/2019 12:23", "open" : "kgr 4/29/2019 13:18" }, "instance" : { + "addButtonMenuItemsSelectionTo:" : "F.S 7/10/2021 20:06", + "addButtonMenuItemsTo:" : "F.S 7/10/2021 19:32", + "addFindReplaceItemsTo:" : "F.S 7/10/2021 19:26", + "addHeadingMenuItemsTo:" : "F.S 7/10/2021 19:43", + "addInlineItemsTo:" : "F.S 7/10/2021 20:05", + "addLinkMenuItemsTo:" : "F.S 7/10/2021 19:56", + "applyAutoLink" : "F.S 7/10/2021 19:58", + "applyBlockquote" : "F.S 7/10/2021 20:06", "applyBold" : "F.S 6/9/2021 10:46", + "applyHeadingAt:" : "F.S 7/10/2021 18:58", + "applyHeadingOnSelectionWith:" : "F.S 7/10/2021 19:45", + "applyImageDestination" : "F.S 7/10/2021 20:02", + "applyImageText" : "F.S 7/10/2021 20:02", + "applyInlineCode" : "F.S 7/10/2021 18:46", "applyInlineOnSelectionWith:" : "F.S 6/9/2021 11:16", "applyItalic" : "F.S 6/9/2021 10:44", + "applyLinkDestination" : "F.S 7/10/2021 20:01", + "applyLinkText" : "F.S 7/10/2021 20:01", "applyStrikeout" : "F.S 6/9/2021 10:46", "applyUserInterfaceTheme" : "jh 5/30/2021 15:58", "blockTextStyler" : "azi 6/4/2020 11:00", @@ -43,6 +58,4 @@ "window:" : "jh 5/27/2021 09:41", "windowSpecsFor:" : "F.S 5/26/2021 11:35", "windowTitle" : "MK 5/11/2020 19:00", - "yellowButtonMenu:" : "JE 6/16/2021 16:33", - "yellowButtonMenuItems" : "F.S 7/10/2021 17:41", - "yellowButtonMenuItemsSelection" : "F.S 7/10/2021 17:41" } } + "yellowButtonMenu:" : "F.S 7/10/2021 19:31" } } From 453b545a8ce5d77be4532f071093e975d65acf21 Mon Sep 17 00:00:00 2001 From: Julian Egbert Date: Sun, 11 Jul 2021 17:32:02 +0200 Subject: [PATCH 5/6] Move YellowButtonMenu to a separate class. --- .../addButtonMenuItemsSelectionTo..st | 17 ----------- .../instance/addButtonMenuItemsTo..st | 23 --------------- .../instance/addInlineItemsTo..st | 14 --------- .../instance/applyAutoLink.st | 6 ---- .../instance/applyBlockquote.st | 6 ---- .../instance/applyBold.st | 4 --- .../instance/applyHeadingAt..st | 5 ---- .../instance/applyImageDestination.st | 6 ---- .../instance/applyImageText.st | 6 ---- .../instance/applyInlineCode.st | 4 --- .../instance/applyItalic.st | 4 --- .../instance/applyLinkDestination.st | 6 ---- .../instance/applyLinkText.st | 6 ---- .../instance/applyStrikeout.st | 4 --- .../instance/findAndReplaceAll.st | 10 ------- .../instance/markdownMenu..st | 4 +++ .../instance/markdownMenu.st | 4 +++ .../instance/textMorph..st | 3 +- .../instance/textSelected.st | 4 --- .../instance/yellowButtonMenu..st | 5 +--- .../methodProperties.json | 29 ++++--------------- .../MarkdownEditor.class/properties.json | 3 +- .../MarkdownEditorMenu.class/README.md | 0 .../MarkdownEditorMenu.class/class/newFor..st | 4 +++ .../instance/addExportItemsTo..st | 13 +++++++++ .../instance/addFileItemsTo..st | 15 ++++++++++ .../instance/addFindReplaceItemsTo..st | 8 ++--- .../instance/addHeadingMenuItemsTo..st | 0 .../instance/addInlineItemsTo..st | 11 +++++++ .../instance/addLinkMenuItemsTo..st | 0 .../instance/addMenuItemsSelectionTo..st | 7 +++++ .../instance/addMenuItemsTo..st | 8 +++++ .../instance/applyAutoLink.st | 6 ++++ .../instance/applyBlockquote.st | 6 ++++ .../instance/applyHeadingAt..st} | 6 ++-- .../instance/applyImageDestination.st | 6 ++++ .../instance/applyImageText.st | 6 ++++ .../instance/applyInlineOnSelectionWith..st | 4 +-- .../instance/applyLinkDestination.st | 6 ++++ .../instance/applyLinkText.st | 6 ++++ .../instance/findAndReplaceAll.st | 10 +++++++ .../instance/pluggableTextMorph..st | 4 +++ .../instance/pluggableTextMorph.st | 4 +++ .../instance/textSelected.st | 4 +++ .../instance/yellowButtonMenu..st | 7 +++++ .../methodProperties.json | 25 ++++++++++++++++ .../MarkdownEditorMenu.class/properties.json | 14 +++++++++ .../MarkdownEditorMenuTest.class/README.md | 0 .../instance/setUp.st | 6 ++++ .../instance/styleSettingsForHtmlTests.st | 24 +++++++++++++++ .../instance/tearDown.st | 4 +++ .../instance/testApplyAutoLink.st | 9 ++++++ .../instance/testApplyBlockquote.st | 11 +++++++ .../instance/testApplyHeading.st | 11 +++++++ .../instance/testApplyImageDestination.st | 9 ++++++ .../instance/testApplyImageText.st | 9 ++++++ .../instance/testApplyInline.st | 2 +- .../instance/testApplyInlineEmptyCharacter.st | 2 +- .../instance/testApplyInlineIntervalInText.st | 2 +- .../instance/testApplyInlineNested.st | 6 ++-- .../testApplyInlineSingleCharacter.st | 2 +- .../instance/testApplyLinkDestination.st | 9 ++++++ .../instance/testApplyLinkText.st | 9 ++++++ .../instance/testSelectionMenuIsDifferent.st | 9 ++++++ .../instance/testYellowButtonMenuExists.st | 7 +++++ .../testYellowButtonMenuSelectionExists.st | 9 ++++++ .../methodProperties.json | 22 ++++++++++++++ .../properties.json | 16 ++++++++++ .../instance/testApplyInlineWithSpaces.st | 11 ------- .../instance/testYellowButtonMenuExists.st | 21 -------------- .../methodProperties.json | 11 ++----- 71 files changed, 362 insertions(+), 212 deletions(-) delete mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addButtonMenuItemsSelectionTo..st delete mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addButtonMenuItemsTo..st delete mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addInlineItemsTo..st delete mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyAutoLink.st delete mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyBlockquote.st delete mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyBold.st delete mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyHeadingAt..st delete mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyImageDestination.st delete mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyImageText.st delete mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyInlineCode.st delete mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyItalic.st delete mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyLinkDestination.st delete mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyLinkText.st delete mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyStrikeout.st delete mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/findAndReplaceAll.st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/markdownMenu..st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/markdownMenu.st delete mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/textSelected.st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/README.md create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/class/newFor..st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addExportItemsTo..st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addFileItemsTo..st rename packages/MarkdownEditor-Core.package/{MarkdownEditor.class => MarkdownEditorMenu.class}/instance/addFindReplaceItemsTo..st (64%) rename packages/MarkdownEditor-Core.package/{MarkdownEditor.class => MarkdownEditorMenu.class}/instance/addHeadingMenuItemsTo..st (100%) create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addInlineItemsTo..st rename packages/MarkdownEditor-Core.package/{MarkdownEditor.class => MarkdownEditorMenu.class}/instance/addLinkMenuItemsTo..st (100%) create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addMenuItemsSelectionTo..st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addMenuItemsTo..st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyAutoLink.st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyBlockquote.st rename packages/MarkdownEditor-Core.package/{MarkdownEditor.class/instance/applyHeadingOnSelectionWith..st => MarkdownEditorMenu.class/instance/applyHeadingAt..st} (64%) create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyImageDestination.st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyImageText.st rename packages/MarkdownEditor-Core.package/{MarkdownEditor.class => MarkdownEditorMenu.class}/instance/applyInlineOnSelectionWith..st (67%) create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyLinkDestination.st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyLinkText.st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/findAndReplaceAll.st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/pluggableTextMorph..st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/pluggableTextMorph.st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/textSelected.st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/yellowButtonMenu..st create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/methodProperties.json create mode 100644 packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/properties.json create mode 100644 packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/README.md create mode 100644 packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/setUp.st create mode 100644 packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/styleSettingsForHtmlTests.st create mode 100644 packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/tearDown.st create mode 100644 packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyAutoLink.st create mode 100644 packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyBlockquote.st create mode 100644 packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyHeading.st create mode 100644 packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyImageDestination.st create mode 100644 packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyImageText.st rename packages/MarkdownEditor-Tests.package/{MarkdownEditorTest.class => MarkdownEditorMenuTest.class}/instance/testApplyInline.st (78%) rename packages/MarkdownEditor-Tests.package/{MarkdownEditorTest.class => MarkdownEditorMenuTest.class}/instance/testApplyInlineEmptyCharacter.st (80%) rename packages/MarkdownEditor-Tests.package/{MarkdownEditorTest.class => MarkdownEditorMenuTest.class}/instance/testApplyInlineIntervalInText.st (81%) rename packages/MarkdownEditor-Tests.package/{MarkdownEditorTest.class => MarkdownEditorMenuTest.class}/instance/testApplyInlineNested.st (55%) rename packages/MarkdownEditor-Tests.package/{MarkdownEditorTest.class => MarkdownEditorMenuTest.class}/instance/testApplyInlineSingleCharacter.st (78%) create mode 100644 packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyLinkDestination.st create mode 100644 packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyLinkText.st create mode 100644 packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testSelectionMenuIsDifferent.st create mode 100644 packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testYellowButtonMenuExists.st create mode 100644 packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testYellowButtonMenuSelectionExists.st create mode 100644 packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/methodProperties.json create mode 100644 packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/properties.json delete mode 100644 packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testApplyInlineWithSpaces.st delete mode 100644 packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testYellowButtonMenuExists.st diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addButtonMenuItemsSelectionTo..st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addButtonMenuItemsSelectionTo..st deleted file mode 100644 index f444c588..00000000 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addButtonMenuItemsSelectionTo..st +++ /dev/null @@ -1,17 +0,0 @@ -yellowButtonMenu -addButtonMenuItemsSelectionTo: aMenu - - | entries | - entries := OrderedCollection withAll: - { - {'italic' translated. #applyItalic}. - {'bold' translated. #applyBold}. - {'strikeout' translated. #applyStrikeout}. - }. - aMenu - addList: entries; - add: 'heading' subMenu: (self addHeadingMenuItemsTo: MenuMorph new); - add: 'link' subMenu: (self addLinkMenuItemsTo: MenuMorph new); - add: 'blockquote' action: [self applyBlockquote]; - yourself. - ^ self addFindReplaceItemsTo: aMenu \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addButtonMenuItemsTo..st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addButtonMenuItemsTo..st deleted file mode 100644 index 5408862c..00000000 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addButtonMenuItemsTo..st +++ /dev/null @@ -1,23 +0,0 @@ -yellowButtonMenu -addButtonMenuItemsTo: aMenu - - | fileSystem other | - fileSystem := OrderedCollection withAll: - { - {'new' translated. #createNewInstance}. - {'open...' translated. #openFileDialog}. - {'save' translated. #saveText}. - {'save as...' translated. #saveAsFileDialog}. - #-. - }. - other := OrderedCollection withAll: - { - #-. - {'convert to html' translated. #convertToHTML}. - #-. - {'appearance...' translated. #openSettings} - }. - aMenu addList: fileSystem. - self addFindReplaceItemsTo: aMenu. - aMenu addList: other. - ^ aMenu \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addInlineItemsTo..st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addInlineItemsTo..st deleted file mode 100644 index bce0c835..00000000 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addInlineItemsTo..st +++ /dev/null @@ -1,14 +0,0 @@ -yellowButtonMenu -addInlineItemsTo: aMenu - - | inline| - inline := OrderedCollection withAll: - { - {'italic' translated. #applyItalic}. - {'bold' translated. #applyBold}. - {'strikeout' translated. #applyStrikeout}. - }. - ^ aMenu - addList: inline; - add: 'heading' subMenu: (MenuMorph new addList: self yellowButtonMenuItemsSelection); - yourself \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyAutoLink.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyAutoLink.st deleted file mode 100644 index 346c6640..00000000 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyAutoLink.st +++ /dev/null @@ -1,6 +0,0 @@ -text interaction -applyAutoLink - - | selection | - selection := self textMorph textMorph selection. - self textMorph replaceSelectionWith: '<', selection, '>' diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyBlockquote.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyBlockquote.st deleted file mode 100644 index b3eebef6..00000000 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyBlockquote.st +++ /dev/null @@ -1,6 +0,0 @@ -text interaction -applyBlockquote - - | selection | - selection := self textMorph textMorph selection. - self textMorph replaceSelectionWith: '>', selection diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyBold.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyBold.st deleted file mode 100644 index d6d18096..00000000 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyBold.st +++ /dev/null @@ -1,4 +0,0 @@ -text interaction -applyBold - - self applyInlineOnSelectionWith: '**' \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyHeadingAt..st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyHeadingAt..st deleted file mode 100644 index 46cfbe6b..00000000 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyHeadingAt..st +++ /dev/null @@ -1,5 +0,0 @@ -text interaction -applyHeadingAt: aLevel - - self applyHeadingOnSelectionWith: aLevel - \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyImageDestination.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyImageDestination.st deleted file mode 100644 index d38fd3c3..00000000 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyImageDestination.st +++ /dev/null @@ -1,6 +0,0 @@ -text interaction -applyImageDestination - - | selection | - selection := self textMorph textMorph selection. - self textMorph replaceSelectionWith: '![', selection, '](image destination)' diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyImageText.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyImageText.st deleted file mode 100644 index 6b34f374..00000000 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyImageText.st +++ /dev/null @@ -1,6 +0,0 @@ -text interaction -applyImageText - - | selection | - selection := self textMorph textMorph selection. - self textMorph replaceSelectionWith: '![image text](', selection, ')' \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyInlineCode.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyInlineCode.st deleted file mode 100644 index a8d5ca3b..00000000 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyInlineCode.st +++ /dev/null @@ -1,4 +0,0 @@ -text interaction -applyInlineCode - - self applyInlineOnSelectionWith: '~~' \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyItalic.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyItalic.st deleted file mode 100644 index 86907a35..00000000 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyItalic.st +++ /dev/null @@ -1,4 +0,0 @@ -text interaction -applyItalic - - self applyInlineOnSelectionWith: '*' \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyLinkDestination.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyLinkDestination.st deleted file mode 100644 index d0aa753d..00000000 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyLinkDestination.st +++ /dev/null @@ -1,6 +0,0 @@ -text interaction -applyLinkDestination - - | selection | - selection := self textMorph textMorph selection. - self textMorph replaceSelectionWith: '[link text](', selection, ')' diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyLinkText.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyLinkText.st deleted file mode 100644 index 007e2045..00000000 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyLinkText.st +++ /dev/null @@ -1,6 +0,0 @@ -text interaction -applyLinkText - - | selection | - selection := self textMorph textMorph selection. - self textMorph replaceSelectionWith: '[', selection, '](link destination)' \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyStrikeout.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyStrikeout.st deleted file mode 100644 index 4f327f79..00000000 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyStrikeout.st +++ /dev/null @@ -1,4 +0,0 @@ -text interaction -applyStrikeout - - self applyInlineOnSelectionWith: '~~' \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/findAndReplaceAll.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/findAndReplaceAll.st deleted file mode 100644 index 3eba44fe..00000000 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/findAndReplaceAll.st +++ /dev/null @@ -1,10 +0,0 @@ -text interaction -findAndReplaceAll - - | continue | - self textMorph setSelection: #(1. 0). - self textMorph findReplace. - continue := true. - [continue] whileTrue: [ - continue := self textMorph handleEdit: [self textMorph textMorph editor again]] - \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/markdownMenu..st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/markdownMenu..st new file mode 100644 index 00000000..f87b9744 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/markdownMenu..st @@ -0,0 +1,4 @@ +accessing +markdownMenu: aMarkdownEditorMenu + + markdownMenu := aMarkdownEditorMenu \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/markdownMenu.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/markdownMenu.st new file mode 100644 index 00000000..252ab4af --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/markdownMenu.st @@ -0,0 +1,4 @@ +accessing +markdownMenu + + ^ markdownMenu \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/textMorph..st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/textMorph..st index f3dfef83..93b19ba8 100644 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/textMorph..st +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/textMorph..st @@ -1,4 +1,5 @@ accessing textMorph: aTextMorph - textMorph := aTextMorph \ No newline at end of file + textMorph := aTextMorph. + self markdownMenu: (MarkdownEditorMenu newFor: aTextMorph) \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/textSelected.st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/textSelected.st deleted file mode 100644 index 26117ae7..00000000 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/textSelected.st +++ /dev/null @@ -1,4 +0,0 @@ -text interaction -textSelected - - ^ (self textMorph textMorph selection = '') not \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenu..st b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenu..st index d6df2ddc..a6079ca7 100644 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenu..st +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/yellowButtonMenu..st @@ -1,7 +1,4 @@ yellowButtonMenu yellowButtonMenu: aMenu - self textSelected - ifTrue: [self addButtonMenuItemsSelectionTo: aMenu] - ifFalse: [self addButtonMenuItemsTo: aMenu]. - ^ aMenu \ No newline at end of file + ^ self markdownMenu yellowButtonMenu: aMenu \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/methodProperties.json b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/methodProperties.json index 2452248d..7822336c 100644 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/methodProperties.json +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/methodProperties.json @@ -5,25 +5,6 @@ "initialize" : "lpf 6/13/2019 12:23", "open" : "kgr 4/29/2019 13:18" }, "instance" : { - "addButtonMenuItemsSelectionTo:" : "F.S 7/10/2021 20:06", - "addButtonMenuItemsTo:" : "F.S 7/10/2021 19:32", - "addFindReplaceItemsTo:" : "F.S 7/10/2021 19:26", - "addHeadingMenuItemsTo:" : "F.S 7/10/2021 19:43", - "addInlineItemsTo:" : "F.S 7/10/2021 20:05", - "addLinkMenuItemsTo:" : "F.S 7/10/2021 19:56", - "applyAutoLink" : "F.S 7/10/2021 19:58", - "applyBlockquote" : "F.S 7/10/2021 20:06", - "applyBold" : "F.S 6/9/2021 10:46", - "applyHeadingAt:" : "F.S 7/10/2021 18:58", - "applyHeadingOnSelectionWith:" : "F.S 7/10/2021 19:45", - "applyImageDestination" : "F.S 7/10/2021 20:02", - "applyImageText" : "F.S 7/10/2021 20:02", - "applyInlineCode" : "F.S 7/10/2021 18:46", - "applyInlineOnSelectionWith:" : "F.S 6/9/2021 11:16", - "applyItalic" : "F.S 6/9/2021 10:44", - "applyLinkDestination" : "F.S 7/10/2021 20:01", - "applyLinkText" : "F.S 7/10/2021 20:01", - "applyStrikeout" : "F.S 6/9/2021 10:46", "applyUserInterfaceTheme" : "jh 5/30/2021 15:58", "blockTextStyler" : "azi 6/4/2020 11:00", "buildEditorTextMorphWith:" : "F.S 6/9/2021 10:53", @@ -35,9 +16,10 @@ "currentFilePath:" : "MK 7/6/2020 14:37", "defaultFilename" : "F.S 5/26/2021 11:24", "fileEnding" : "JE 5/5/2021 17:51", - "findAndReplaceAll" : "F.S 7/10/2021 18:14", "handleClose" : "jh 5/29/2021 10:50", - "initialize" : "azi 8/6/2020 06:56", + "initialize" : "JE 7/11/2021 16:34", + "markdownMenu" : "JE 7/11/2021 16:32", + "markdownMenu:" : "JE 7/11/2021 16:33", "markdownText" : "lpf 6/13/2019 15:26", "markdownText:" : "cg 7/5/2020 12:20", "openFile:" : "mas 7/7/2020 12:42", @@ -52,10 +34,9 @@ "saveText" : "JE 5/27/2021 19:40", "saveTextInModel" : "MK 7/6/2020 14:40", "textMorph" : "cg 7/5/2020 12:21", - "textMorph:" : "cg 7/5/2020 12:21", - "textSelected" : "JE 6/16/2021 16:32", + "textMorph:" : "JE 7/11/2021 16:34", "window" : "jh 5/27/2021 09:41", "window:" : "jh 5/27/2021 09:41", "windowSpecsFor:" : "F.S 5/26/2021 11:35", "windowTitle" : "MK 5/11/2020 19:00", - "yellowButtonMenu:" : "F.S 7/10/2021 19:31" } } + "yellowButtonMenu:" : "JE 7/11/2021 16:36" } } diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/properties.json b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/properties.json index 32ceb7e0..fb320cd4 100644 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/properties.json +++ b/packages/MarkdownEditor-Core.package/MarkdownEditor.class/properties.json @@ -9,7 +9,8 @@ "markdownText", "textMorph", "currentFilePath", - "window" ], + "window", + "markdownMenu" ], "name" : "MarkdownEditor", "pools" : [ ], diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/README.md b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/class/newFor..st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/class/newFor..st new file mode 100644 index 00000000..b0d692a2 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/class/newFor..st @@ -0,0 +1,4 @@ +initialize-release +newFor: aPluggableTextMorph + + ^ self new pluggableTextMorph: aPluggableTextMorph \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addExportItemsTo..st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addExportItemsTo..st new file mode 100644 index 00000000..5dcd59c2 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addExportItemsTo..st @@ -0,0 +1,13 @@ +yellowButtonMenu +addExportItemsTo: aMenu + + | items | + items := OrderedCollection withAll: + { + #-. + {'convert to html' translated. #convertToHTML}. + {'appearance...' translated. #openSettings} + }. + ^ aMenu + addList: items; + yourself \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addFileItemsTo..st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addFileItemsTo..st new file mode 100644 index 00000000..5b528af5 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addFileItemsTo..st @@ -0,0 +1,15 @@ +yellowButtonMenu +addFileItemsTo: aMenu + + | items | + items := OrderedCollection withAll: + { + {'new' translated. #createNewInstance}. + {'open...' translated. #openFileDialog}. + {'save' translated. #saveText}. + {'save as...' translated. #saveAsFileDialog}. + #-. + }. + ^ aMenu + addList: items; + yourself \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addFindReplaceItemsTo..st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addFindReplaceItemsTo..st similarity index 64% rename from packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addFindReplaceItemsTo..st rename to packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addFindReplaceItemsTo..st index 1e321060..42582b62 100644 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addFindReplaceItemsTo..st +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addFindReplaceItemsTo..st @@ -8,9 +8,9 @@ addFindReplaceItemsTo: aMenu {'find...(f)' translated. #find}. {'find again (g)' translated. #findAgain}. {'find and replace ...' translated. #findReplace}. - {'do/replace again (j)' translated. #again}. - {'find and replace all' translated. #findAndReplaceAll} + {'do/replace again (j)' translated. #again} }. ^ aMenu - addList: inline; - yourself \ No newline at end of file + addList: inline; + add: 'find and replace all' action: [self findAndReplaceAll]; + yourself \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addHeadingMenuItemsTo..st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addHeadingMenuItemsTo..st similarity index 100% rename from packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addHeadingMenuItemsTo..st rename to packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addHeadingMenuItemsTo..st diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addInlineItemsTo..st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addInlineItemsTo..st new file mode 100644 index 00000000..f67e0652 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addInlineItemsTo..st @@ -0,0 +1,11 @@ +yellowButtonMenu +addInlineItemsTo: aMenu + + ^ aMenu + add: 'italic' action: [self applyInlineOnSelectionWith: '*']; + add: 'bold' action: [self applyInlineOnSelectionWith: '**']; + add: 'strikeout' action: [self applyInlineOnSelectionWith: '~~']; + add: 'heading' subMenu: (self addHeadingMenuItemsTo: MenuMorph new); + add: 'link' subMenu: (self addLinkMenuItemsTo: MenuMorph new); + add: 'blockquote' action: [self applyBlockquote]; + yourself \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addLinkMenuItemsTo..st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addLinkMenuItemsTo..st similarity index 100% rename from packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/addLinkMenuItemsTo..st rename to packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addLinkMenuItemsTo..st diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addMenuItemsSelectionTo..st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addMenuItemsSelectionTo..st new file mode 100644 index 00000000..4e288076 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addMenuItemsSelectionTo..st @@ -0,0 +1,7 @@ +yellowButtonMenu +addMenuItemsSelectionTo: aMenu + + ^ self + addInlineItemsTo: aMenu; + addFindReplaceItemsTo: aMenu; + yourself \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addMenuItemsTo..st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addMenuItemsTo..st new file mode 100644 index 00000000..db90a35b --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addMenuItemsTo..st @@ -0,0 +1,8 @@ +yellowButtonMenu +addMenuItemsTo: aMenu + + ^ self + addFileItemsTo: aMenu; + addFindReplaceItemsTo: aMenu; + addExportItemsTo: aMenu; + yourself \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyAutoLink.st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyAutoLink.st new file mode 100644 index 00000000..6f4ca83a --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyAutoLink.st @@ -0,0 +1,6 @@ +text interaction +applyAutoLink + + | selection | + selection := self pluggableTextMorph textMorph selection. + self pluggableTextMorph replaceSelectionWith: '<', selection, '>' \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyBlockquote.st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyBlockquote.st new file mode 100644 index 00000000..525a1432 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyBlockquote.st @@ -0,0 +1,6 @@ +text interaction +applyBlockquote + + | selection | + selection := self pluggableTextMorph textMorph selection. + self pluggableTextMorph replaceSelectionWith: '>', selection diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyHeadingOnSelectionWith..st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyHeadingAt..st similarity index 64% rename from packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyHeadingOnSelectionWith..st rename to packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyHeadingAt..st index 93d36897..7cc8277a 100644 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyHeadingOnSelectionWith..st +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyHeadingAt..st @@ -1,8 +1,8 @@ text interaction -applyHeadingOnSelectionWith: aLevel +applyHeadingAt: aLevel | selection matcher prefix suffix content | - selection := self textMorph textMorph selection. + selection := self pluggableTextMorph textMorph selection. matcher := RxMatcher forString: '(#*)(\s*)(\S.*\S|\S)(\s*)'. (matcher matches: selection) ifFalse: [^ nil]. @@ -10,4 +10,4 @@ applyHeadingOnSelectionWith: aLevel suffix := matcher subexpression: 5. prefix := ''. aLevel timesRepeat: [prefix := prefix, '#']. - self textMorph replaceSelectionWith: prefix, Character space, content, Character cr \ No newline at end of file + self pluggableTextMorph replaceSelectionWith: prefix, Character space, content, Character cr \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyImageDestination.st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyImageDestination.st new file mode 100644 index 00000000..4cf82d0b --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyImageDestination.st @@ -0,0 +1,6 @@ +text interaction +applyImageDestination + + | selection | + selection := self pluggableTextMorph textMorph selection. + self pluggableTextMorph replaceSelectionWith: '![](', selection, ')' \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyImageText.st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyImageText.st new file mode 100644 index 00000000..57baca0e --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyImageText.st @@ -0,0 +1,6 @@ +text interaction +applyImageText + + | selection | + selection := self pluggableTextMorph textMorph selection. + self pluggableTextMorph replaceSelectionWith: '![', selection, ']()' \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyInlineOnSelectionWith..st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyInlineOnSelectionWith..st similarity index 67% rename from packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyInlineOnSelectionWith..st rename to packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyInlineOnSelectionWith..st index bfa9fd01..224b33a2 100644 --- a/packages/MarkdownEditor-Core.package/MarkdownEditor.class/instance/applyInlineOnSelectionWith..st +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyInlineOnSelectionWith..st @@ -2,7 +2,7 @@ text interaction applyInlineOnSelectionWith: aDelimiter | selection matcher prefix suffix content | - selection := self textMorph textMorph selection. + selection := self pluggableTextMorph textMorph selection. matcher := RxMatcher forString: '(\s*)(\S.*\S|\S)(\s*)'. (matcher matches: selection) ifFalse: [^ nil]. @@ -10,4 +10,4 @@ applyInlineOnSelectionWith: aDelimiter content := matcher subexpression: 3. suffix := matcher subexpression: 4. - self textMorph replaceSelectionWith: prefix, aDelimiter, content, aDelimiter, suffix \ No newline at end of file + self pluggableTextMorph replaceSelectionWith: prefix, aDelimiter, content, aDelimiter, suffix \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyLinkDestination.st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyLinkDestination.st new file mode 100644 index 00000000..594b8a24 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyLinkDestination.st @@ -0,0 +1,6 @@ +text interaction +applyLinkDestination + + | selection | + selection := self pluggableTextMorph textMorph selection. + self pluggableTextMorph replaceSelectionWith: '[](', selection, ')' diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyLinkText.st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyLinkText.st new file mode 100644 index 00000000..08962dfa --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyLinkText.st @@ -0,0 +1,6 @@ +text interaction +applyLinkText + + | selection | + selection := self pluggableTextMorph textMorph selection. + self pluggableTextMorph replaceSelectionWith: '[', selection, ']()' \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/findAndReplaceAll.st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/findAndReplaceAll.st new file mode 100644 index 00000000..f919aab7 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/findAndReplaceAll.st @@ -0,0 +1,10 @@ +text interaction +findAndReplaceAll + + | continue | + self pluggableTextMorph setSelection: #(1. 0). + self pluggableTextMorph findReplace. "Opens UI that requests Input" + continue := true. + [continue] whileTrue: [ + continue := self pluggableTextMorph handleEdit: [self pluggableTextMorph textMorph editor again]] + \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/pluggableTextMorph..st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/pluggableTextMorph..st new file mode 100644 index 00000000..03acda67 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/pluggableTextMorph..st @@ -0,0 +1,4 @@ +accessing +pluggableTextMorph: aPluggableTextMorph + + pluggableTextMorph := aPluggableTextMorph \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/pluggableTextMorph.st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/pluggableTextMorph.st new file mode 100644 index 00000000..1eafd850 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/pluggableTextMorph.st @@ -0,0 +1,4 @@ +accessing +pluggableTextMorph + + ^ pluggableTextMorph \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/textSelected.st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/textSelected.st new file mode 100644 index 00000000..e37c96d0 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/textSelected.st @@ -0,0 +1,4 @@ +text interaction +textSelected + + ^ self pluggableTextMorph textMorph selection notEmpty \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/yellowButtonMenu..st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/yellowButtonMenu..st new file mode 100644 index 00000000..1129bc42 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/yellowButtonMenu..st @@ -0,0 +1,7 @@ +yellowButtonMenu +yellowButtonMenu: aMenu + + self textSelected + ifTrue: [self addMenuItemsSelectionTo: aMenu] + ifFalse: [self addMenuItemsTo: aMenu]. + ^ aMenu \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/methodProperties.json b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/methodProperties.json new file mode 100644 index 00000000..6dbb1bc7 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/methodProperties.json @@ -0,0 +1,25 @@ +{ + "class" : { + "newFor:" : "JE 7/11/2021 16:31" }, + "instance" : { + "addExportItemsTo:" : "JE 7/11/2021 16:53", + "addFileItemsTo:" : "JE 7/11/2021 16:52", + "addFindReplaceItemsTo:" : "JE 7/11/2021 16:50", + "addHeadingMenuItemsTo:" : "JE 7/11/2021 16:35", + "addInlineItemsTo:" : "JE 7/11/2021 16:56", + "addLinkMenuItemsTo:" : "JE 7/11/2021 16:36", + "addMenuItemsSelectionTo:" : "JE 7/11/2021 16:51", + "addMenuItemsTo:" : "JE 7/11/2021 16:54", + "applyAutoLink" : "JE 7/11/2021 16:38", + "applyBlockquote" : "JE 7/11/2021 16:38", + "applyHeadingAt:" : "JE 7/11/2021 16:45", + "applyImageDestination" : "JE 7/11/2021 17:22", + "applyImageText" : "JE 7/11/2021 17:22", + "applyInlineOnSelectionWith:" : "JE 7/11/2021 16:40", + "applyLinkDestination" : "JE 7/11/2021 17:24", + "applyLinkText" : "JE 7/11/2021 17:24", + "findAndReplaceAll" : "JE 7/11/2021 17:31", + "pluggableTextMorph" : "JE 7/11/2021 16:31", + "pluggableTextMorph:" : "JE 7/11/2021 16:31", + "textSelected" : "JE 7/11/2021 16:57", + "yellowButtonMenu:" : "JE 7/11/2021 16:50" } } diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/properties.json b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/properties.json new file mode 100644 index 00000000..b877c307 --- /dev/null +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "MarkdownEditor-Core", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "pluggableTextMorph" ], + "name" : "MarkdownEditorMenu", + "pools" : [ + ], + "super" : "Object", + "type" : "normal" } diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/README.md b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/setUp.st b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/setUp.st new file mode 100644 index 00000000..76f94826 --- /dev/null +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/setUp.st @@ -0,0 +1,6 @@ +running +setUp + + editor := MarkdownEditor new. + toolbuilder := ToolBuilder default. + window := toolbuilder open: editor \ No newline at end of file diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/styleSettingsForHtmlTests.st b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/styleSettingsForHtmlTests.st new file mode 100644 index 00000000..ef48e1fa --- /dev/null +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/styleSettingsForHtmlTests.st @@ -0,0 +1,24 @@ +running +styleSettingsForHtmlTests + + | styleSettings | + + styleSettings := MarkdownStyleSettings default. + styleSettings fontColors at: 'Blockquote' put: Color blue. + styleSettings fontColors at: 'Comment' put: Color lightGray. + styleSettings fontColors at: 'Heading 1' put: Color black. + styleSettings fontColors at: 'Heading 2' put: Color black. + styleSettings fontColors at: 'Heading 3' put: Color black. + styleSettings fontColors at: 'Heading 4' put: Color black. + styleSettings fontColors at: 'Heading 5' put: Color black. + styleSettings fontColors at: 'Heading 6' put: Color black. + styleSettings fontColors at: 'Ord. List 1' put: Color black. + styleSettings fontColors at: 'Ord. List 2' put: Color black. + styleSettings fontColors at: 'Ord. List 3+' put: Color black. + styleSettings fontColors at: 'Paragraph' put: Color black. + styleSettings fontColors at: 'Unord. List 1' put: Color black. + styleSettings fontColors at: 'Unord. List 2' put: Color black. + styleSettings fontColors at: 'Unord. List 3+' put: Color black. + ^ styleSettings + + \ No newline at end of file diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/tearDown.st b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/tearDown.st new file mode 100644 index 00000000..7d985b46 --- /dev/null +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/tearDown.st @@ -0,0 +1,4 @@ +running +tearDown + + editor handleClose \ No newline at end of file diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyAutoLink.st b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyAutoLink.st new file mode 100644 index 00000000..ed14e762 --- /dev/null +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyAutoLink.st @@ -0,0 +1,9 @@ +tests - applyLinks +testApplyAutoLink + + | content | + content := 'https://squeak.org/'. + editor markdownText: content. + editor textMorph selectAll. + editor markdownMenu applyAutoLink. + self assert: ('<', content, '>') asText equals: editor textMorph text \ No newline at end of file diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyBlockquote.st b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyBlockquote.st new file mode 100644 index 00000000..449ae1cb --- /dev/null +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyBlockquote.st @@ -0,0 +1,11 @@ +tests - inline styling +testApplyBlockquote + + | content prefix suffix| + prefix := ' '. + suffix := ' '. + content := 'This is a blockquote'. + editor markdownText: prefix, content, suffix. + editor textMorph selectAll. + editor markdownMenu applyBlockquote. + self assert: ('>', prefix, content, suffix) asText equals: editor textMorph text \ No newline at end of file diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyHeading.st b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyHeading.st new file mode 100644 index 00000000..338aa5b2 --- /dev/null +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyHeading.st @@ -0,0 +1,11 @@ +tests - inline styling +testApplyHeading + + | content prefix suffix| + prefix := ' '. + suffix := ' '. + content := 'This is a heading'. + editor markdownText: prefix, content, suffix. + editor textMorph selectAll. + editor markdownMenu applyHeadingAt: 1. + self assert: ('# ', content, Character cr) asText equals: editor textMorph text \ No newline at end of file diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyImageDestination.st b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyImageDestination.st new file mode 100644 index 00000000..5b4bcfca --- /dev/null +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyImageDestination.st @@ -0,0 +1,9 @@ +tests - applyLinks +testApplyImageDestination + + | content | + content := 'https://squeak.org/'. + editor markdownText: content. + editor textMorph selectAll. + editor markdownMenu applyImageDestination. + self assert: ('![](', content, ')') asText equals: editor textMorph text \ No newline at end of file diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyImageText.st b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyImageText.st new file mode 100644 index 00000000..b588dd89 --- /dev/null +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyImageText.st @@ -0,0 +1,9 @@ +tests - applyLinks +testApplyImageText + + | content | + content := 'https://squeak.org/'. + editor markdownText: content. + editor textMorph selectAll. + editor markdownMenu applyImageText. + self assert: ('![', content, ']()') asText equals: editor textMorph text \ No newline at end of file diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testApplyInline.st b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyInline.st similarity index 78% rename from packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testApplyInline.st rename to packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyInline.st index b7c3ba0c..109bd456 100644 --- a/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testApplyInline.st +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyInline.st @@ -7,5 +7,5 @@ testApplyInline content := 'Inline Test Example'. editor markdownText: prefix, content, suffix. editor textMorph selectAll. - editor applyItalic. + editor markdownMenu applyInlineOnSelectionWith: '*'. self assert: (prefix, '*', content, '*', suffix) asText equals: editor textMorph text \ No newline at end of file diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testApplyInlineEmptyCharacter.st b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyInlineEmptyCharacter.st similarity index 80% rename from packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testApplyInlineEmptyCharacter.st rename to packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyInlineEmptyCharacter.st index 36526fdb..1647d21f 100644 --- a/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testApplyInlineEmptyCharacter.st +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyInlineEmptyCharacter.st @@ -7,5 +7,5 @@ testApplyInlineEmptyCharacter content := ''. editor markdownText: prefix, content, suffix. editor textMorph selectAll. - editor applyItalic. + editor markdownMenu applyInlineOnSelectionWith: '*'. self assert: (prefix, content, suffix) asText equals: editor textMorph text \ No newline at end of file diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testApplyInlineIntervalInText.st b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyInlineIntervalInText.st similarity index 81% rename from packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testApplyInlineIntervalInText.st rename to packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyInlineIntervalInText.st index d41530c6..2fac6b70 100644 --- a/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testApplyInlineIntervalInText.st +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyInlineIntervalInText.st @@ -8,5 +8,5 @@ testApplyInlineIntervalInText inside := 'Strikeout'. editor markdownText: outside, prefix, inside, suffix, outside. editor textMorph selectFrom: outside size + 1 to: outside size + prefix size + inside size + suffix size. - editor applyStrikeout. + editor markdownMenu applyInlineOnSelectionWith: '~~'. self assert: (outside, prefix, '~~', inside, '~~', suffix, outside) asText equals: editor textMorph text \ No newline at end of file diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testApplyInlineNested.st b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyInlineNested.st similarity index 55% rename from packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testApplyInlineNested.st rename to packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyInlineNested.st index 6965bc70..9cefbb60 100644 --- a/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testApplyInlineNested.st +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyInlineNested.st @@ -5,7 +5,7 @@ testApplyInlineNested content := 'Inline Test Example'. editor markdownText: content. editor textMorph selectAll. - editor applyItalic. - editor applyStrikeout. - editor applyBold. + editor markdownMenu applyInlineOnSelectionWith: '*'. + editor markdownMenu applyInlineOnSelectionWith: '~~'. + editor markdownMenu applyInlineOnSelectionWith: '**'. self assert: ('**~~*', content, '*~~**') asText equals: editor textMorph text \ No newline at end of file diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testApplyInlineSingleCharacter.st b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyInlineSingleCharacter.st similarity index 78% rename from packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testApplyInlineSingleCharacter.st rename to packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyInlineSingleCharacter.st index 276c472a..811920aa 100644 --- a/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testApplyInlineSingleCharacter.st +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyInlineSingleCharacter.st @@ -7,5 +7,5 @@ testApplyInlineSingleCharacter content := 'A'. editor markdownText: prefix, content, suffix. editor textMorph selectAll. - editor applyItalic. + editor markdownMenu applyInlineOnSelectionWith: '*'. self assert: (prefix, '*', content, '*', suffix) asText equals: editor textMorph text \ No newline at end of file diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyLinkDestination.st b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyLinkDestination.st new file mode 100644 index 00000000..624b1fed --- /dev/null +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyLinkDestination.st @@ -0,0 +1,9 @@ +tests - applyLinks +testApplyLinkDestination + + | content | + content := 'https://squeak.org/'. + editor markdownText: content. + editor textMorph selectAll. + editor markdownMenu applyLinkDestination. + self assert: ('[](', content, ')') asText equals: editor textMorph text \ No newline at end of file diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyLinkText.st b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyLinkText.st new file mode 100644 index 00000000..01d65f4c --- /dev/null +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testApplyLinkText.st @@ -0,0 +1,9 @@ +tests - applyLinks +testApplyLinkText + + | content | + content := 'https://squeak.org/'. + editor markdownText: content. + editor textMorph selectAll. + editor markdownMenu applyLinkText. + self assert: ('[', content, ']()') asText equals: editor textMorph text \ No newline at end of file diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testSelectionMenuIsDifferent.st b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testSelectionMenuIsDifferent.st new file mode 100644 index 00000000..bb665f77 --- /dev/null +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testSelectionMenuIsDifferent.st @@ -0,0 +1,9 @@ +tests - menu +testSelectionMenuIsDifferent + + | normalMenu selectionMenu | + normalMenu := editor yellowButtonMenu: MenuMorph new. + editor markdownText: 'Hello World'. + editor textMorph selectAll. + selectionMenu := editor yellowButtonMenu: MenuMorph new. + self assert: [(normalMenu items literalEqual: selectionMenu items) not] \ No newline at end of file diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testYellowButtonMenuExists.st b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testYellowButtonMenuExists.st new file mode 100644 index 00000000..09a66908 --- /dev/null +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testYellowButtonMenuExists.st @@ -0,0 +1,7 @@ +tests - menu +testYellowButtonMenuExists + + | menu | + menu := editor yellowButtonMenu: MenuMorph new. + self assert: (menu isKindOf: MenuMorph). + self assert: (menu items size > 0). \ No newline at end of file diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testYellowButtonMenuSelectionExists.st b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testYellowButtonMenuSelectionExists.st new file mode 100644 index 00000000..5673e558 --- /dev/null +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/instance/testYellowButtonMenuSelectionExists.st @@ -0,0 +1,9 @@ +tests - menu +testYellowButtonMenuSelectionExists + + | menu | + editor markdownText: 'Hello World'. + editor textMorph selectAll. + menu := editor yellowButtonMenu: MenuMorph new. + self assert: (menu isKindOf: MenuMorph). + self assert: (menu items size > 0). \ No newline at end of file diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/methodProperties.json b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/methodProperties.json new file mode 100644 index 00000000..9dd6f495 --- /dev/null +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/methodProperties.json @@ -0,0 +1,22 @@ +{ + "class" : { + }, + "instance" : { + "setUp" : "JE 5/19/2021 12:38", + "styleSettingsForHtmlTests" : "jh 5/29/2021 11:43", + "tearDown" : "jh 5/29/2021 11:07", + "testApplyAutoLink" : "JE 7/11/2021 17:19", + "testApplyBlockquote" : "JE 7/11/2021 17:18", + "testApplyHeading" : "JE 7/11/2021 17:17", + "testApplyImageDestination" : "JE 7/11/2021 17:21", + "testApplyImageText" : "JE 7/11/2021 17:23", + "testApplyInline" : "JE 7/11/2021 16:58", + "testApplyInlineEmptyCharacter" : "JE 7/11/2021 16:59", + "testApplyInlineIntervalInText" : "JE 7/11/2021 16:59", + "testApplyInlineNested" : "JE 7/11/2021 17:00", + "testApplyInlineSingleCharacter" : "JE 7/11/2021 17:00", + "testApplyLinkDestination" : "JE 7/11/2021 17:24", + "testApplyLinkText" : "JE 7/11/2021 17:23", + "testSelectionMenuIsDifferent" : "JE 7/11/2021 17:13", + "testYellowButtonMenuExists" : "JE 7/11/2021 17:08", + "testYellowButtonMenuSelectionExists" : "JE 7/11/2021 17:10" } } diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/properties.json b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/properties.json new file mode 100644 index 00000000..10880da9 --- /dev/null +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorMenuTest.class/properties.json @@ -0,0 +1,16 @@ +{ + "category" : "MarkdownEditor-Tests", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "toolbuilder", + "window", + "editor" ], + "name" : "MarkdownEditorMenuTest", + "pools" : [ + ], + "super" : "TestCase", + "type" : "normal" } diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testApplyInlineWithSpaces.st b/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testApplyInlineWithSpaces.st deleted file mode 100644 index 3606a15f..00000000 --- a/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testApplyInlineWithSpaces.st +++ /dev/null @@ -1,11 +0,0 @@ -tests - inline styling -testApplyInlineWithSpaces - - | content prefix suffix| - prefix := ' '. - suffix := ' '. - content := 'Inline Test Example'. - editor markdownText: prefix, content, suffix. - editor textMorph selectAll. - editor applyItalic. - self assert: (prefix, '*', content, '*', suffix) asText equals: editor textMorph text \ No newline at end of file diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testYellowButtonMenuExists.st b/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testYellowButtonMenuExists.st deleted file mode 100644 index 4b585568..00000000 --- a/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/instance/testYellowButtonMenuExists.st +++ /dev/null @@ -1,21 +0,0 @@ -tests - menu -testYellowButtonMenuExists - - | textMorph normalItems selectionItems normalMenu selectionMenu| - textMorph := window submorphs - detect: [:each | each isKindOf: PluggableTextMorphPlus] - ifNone: [self error: 'No yellowButtonMenu found.']. - normalMenu := textMorph getMenu: false. - normalItems := editor yellowButtonMenuItems reject: [:each| each isSymbol]. - self assert: normalItems size equals: normalMenu items size. - - editor markdownText: 'Hello World'. - textMorph selectAll. - selectionMenu := textMorph getMenu: false. - selectionItems := editor yellowButtonMenuItemsSelection reject: [:each| each isSymbol]. - self assert: selectionItems size equals: selectionMenu items size. - - self assert: [(selectionItems literalEqual: normalItems) not] - - - \ No newline at end of file diff --git a/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/methodProperties.json b/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/methodProperties.json index 6a430ce1..4b8c628e 100644 --- a/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/methodProperties.json +++ b/packages/MarkdownEditor-Tests.package/MarkdownEditorTest.class/methodProperties.json @@ -5,15 +5,9 @@ "setUp" : "JE 5/19/2021 12:38", "styleSettingsForHtmlTests" : "jh 5/29/2021 11:43", "tearDown" : "jh 5/29/2021 11:07", - "testApplyInline" : "F.S 6/9/2021 11:55", - "testApplyInlineEmptyCharacter" : "F.S 6/9/2021 11:55", - "testApplyInlineIntervalInText" : "F.S 6/9/2021 11:55", - "testApplyInlineNested" : "F.S 6/9/2021 11:55", - "testApplyInlineSingleCharacter" : "F.S 6/9/2021 11:55", - "testApplyInlineWithSpaces" : "F.S 6/9/2021 11:55", "testApplyTheme" : "jh 5/31/2021 17:17", "testApplyThemeDoesNotThrowErrorForInlineStyling" : "F.S 6/9/2021 11:40", - "testApplyingThemeDoesNotThrowErrorForBlockStyling" : " 7/10/2021 17:37:02", + "testApplyingThemeDoesNotThrowErrorForBlockStyling" : "7/10/2021 17:37:02", "testBuildingEditorReturnsWindow" : "JE 5/26/2021 13:17", "testBuildingEditorTextMorphReturnsSpec" : "JE 5/26/2021 13:17", "testConvertToHtml" : "jh 5/29/2021 11:42", @@ -29,5 +23,4 @@ "testTextPersistenceForInlineStyling" : "MAS 5/9/2020 21:45", "testWindowClose" : "JE 6/1/2021 16:09", "testWindowCreation" : "JE 5/26/2021 13:14", - "testWindowLabel" : "JE 5/26/2021 13:14", - "testYellowButtonMenuExists" : "F.S 7/10/2021 18:41" } } + "testWindowLabel" : "JE 5/26/2021 13:14" } } From 84af5e5421f28199dd14d9a492cba272b756a037 Mon Sep 17 00:00:00 2001 From: Julian Egbert Date: Sun, 11 Jul 2021 17:46:27 +0200 Subject: [PATCH 6/6] Fix Lint failures --- .../instance/addLinkMenuItemsTo..st | 6 +++--- .../MarkdownEditorMenu.class/instance/applyHeadingAt..st | 3 +-- .../MarkdownEditorMenu.class/methodProperties.json | 4 ++-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addLinkMenuItemsTo..st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addLinkMenuItemsTo..st index 2f4fe3f3..f2bb707e 100644 --- a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addLinkMenuItemsTo..st +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/addLinkMenuItemsTo..st @@ -1,11 +1,11 @@ yellowButtonMenu addLinkMenuItemsTo: aMenu - aMenu + + ^ aMenu add: '[...]()' action: [self applyLinkText]; add: '[](...)' action: [self applyLinkDestination]; add: '<...>' action: [self applyAutoLink]; addLine; add: '![...]()' action: [self applyImageText]; add: '![](...)' action: [self applyImageDestination]; - yourself. - ^ aMenu \ No newline at end of file + yourself \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyHeadingAt..st b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyHeadingAt..st index 7cc8277a..1c8b2c85 100644 --- a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyHeadingAt..st +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/instance/applyHeadingAt..st @@ -1,13 +1,12 @@ text interaction applyHeadingAt: aLevel - | selection matcher prefix suffix content | + | selection matcher prefix content | selection := self pluggableTextMorph textMorph selection. matcher := RxMatcher forString: '(#*)(\s*)(\S.*\S|\S)(\s*)'. (matcher matches: selection) ifFalse: [^ nil]. content := matcher subexpression: 4. - suffix := matcher subexpression: 5. prefix := ''. aLevel timesRepeat: [prefix := prefix, '#']. self pluggableTextMorph replaceSelectionWith: prefix, Character space, content, Character cr \ No newline at end of file diff --git a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/methodProperties.json b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/methodProperties.json index 6dbb1bc7..88e79cd1 100644 --- a/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/methodProperties.json +++ b/packages/MarkdownEditor-Core.package/MarkdownEditorMenu.class/methodProperties.json @@ -7,12 +7,12 @@ "addFindReplaceItemsTo:" : "JE 7/11/2021 16:50", "addHeadingMenuItemsTo:" : "JE 7/11/2021 16:35", "addInlineItemsTo:" : "JE 7/11/2021 16:56", - "addLinkMenuItemsTo:" : "JE 7/11/2021 16:36", + "addLinkMenuItemsTo:" : "JE 7/11/2021 17:40", "addMenuItemsSelectionTo:" : "JE 7/11/2021 16:51", "addMenuItemsTo:" : "JE 7/11/2021 16:54", "applyAutoLink" : "JE 7/11/2021 16:38", "applyBlockquote" : "JE 7/11/2021 16:38", - "applyHeadingAt:" : "JE 7/11/2021 16:45", + "applyHeadingAt:" : "JE 7/11/2021 17:45", "applyImageDestination" : "JE 7/11/2021 17:22", "applyImageText" : "JE 7/11/2021 17:22", "applyInlineOnSelectionWith:" : "JE 7/11/2021 16:40",