Try this for the body/editor:

\whitespace trim

\define em-showPopup()
<$action-popupcaret $state=<<em-state>>/>
<$action-setfield
   $tiddler=<<em-state>>
   template=<<matchedTemplate>>
   fragment=<<matchedFragment>>
/>
<$action-setfield $tiddler="test" state=<<em-state>>  />
\end

\define em-updatePopupState()
<$list filter="[<matched>match[false]]">
<$action-deletetiddler $tiddler=<<em-state>>/>
</$list>
<$list filter="[<matched>match[true]]">
<<em-showPopup>>
</$list>
\end

\define em-checkNextTrigger()
<$list 
filter="""[all[tiddlers]tag[$:/tags/EditorMagic]!has[draft.of]after<template>]"""
 
emptyMessage=<<em-updatePopupState>>>
<<em-checkTrigger>>
</$list>
\end

\define em-checkTrigger() 
<$vars
   template={{!!title}}
   trigger={{!!em-trigger}}
   trigger-end={{!!em-triggerend}}
   triggexp={{{ [{!!em-trigger}escaperegexp[]] }}}
   triggendexp={{{ 
[enlist{!!em-triggerend}escaperegexp[]join[|]addprefix[(]addsuffix[)+]split[\/]join[/]trim[]]
 
}}} 
   before={{{ [<text>splitbefore{!!em-trigger}] }}}
   before-length={{{ [<text>splitbefore{!!em-trigger}length[]] }}}
   trigger-length={{{[{!!em-trigger}length[]]}}}
   em-itemfilter = {{!!em-itemfilter}}
>
<$action-log $message=<<template>>/>
<$list filter="""[<text>search<trigger>] +[splitregexp<triggexp>] 
+[!prefix[ ]!search::regexp<triggendexp>] +[last[]]""" 
emptyMessage=<<em-checkNextTrigger>> variable="em-fragment">
<$vars 
before-length={{{[<text>splitregexp<triggexp>butlast[]join<trigger>length[]]}}}>
<$action-log $message={{{[[detected: ]addsuffix<template>]}}}/>
<$list filter="[<template>!has[em-itemfilter]] ~[subfilter<em-itemfilter>]" 
variable="_NULL" emptyMessage=<<em-checkNextTrigger>>>
<$list 
filter="[<em-fragment>length[]add<before-length>add<trigger-length>match<selectionEnd>]"
 
variable="_NULL" emptyMessage=<<em-checkNextTrigger>>>
<$list filter="[<em-fragment>length[]compare:number:lt<fragmentLength>]" 
variable="_NULL" emptyMessage=<<em-checkNextTrigger>>>
<$vars matched="true" fragmentLength={{{[<em-fragment>length[]]}}} 
matchedFragment=<<em-fragment>> matchedTemplate=<<template>> >
<<em-checkNextTrigger>>
</$vars>
</$list>
</$list>
</$list>
</$vars>
</$list>
</$vars>
\end

\define em-checkAllTriggers()
<$vars text={{{ [{!!text}split[]first<selectionEnd>join[]] }}} >
<$list 
filter="""[all[tiddlers]tag[$:/tags/EditorMagic]!has[draft.of]first[]]""">
<$vars matched="false" fragmentLength="9999999">
<<em-checkTrigger>>
</$vars>
</$list>
</$vars>
\end


\define em-inputActions()
<$action-withselection actions=<<em-checkAllTriggers>> />
\end


<$set name=em-state value=<<qualify $:/state/EditorMagicPopupState>>>
<$edit

  field="text"
  class="tc-edit-texteditor tc-edit-texteditor-body"
  placeholder={{$:/language/EditTemplate/Body/Placeholder}}
  tabindex={{$:/config/EditTabIndex}}
  focus={{{ [{$:/config/AutoFocus}match[text]then[true]] ~[[false]] }}}
  cancelPopups="yes"
inputActions=<<em-inputActions>>

>
<$set

  name="targetTiddler"
  value=<<currentTiddler>>

><$list

  filter="[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]]"

><$reveal

  type="nomatch"
  state=<<config-visibility-title>>
  text="hide"
  class="tc-text-editor-toolbar-item-wrapper"

><$transclude

  tiddler="$:/core/ui/EditTemplate/body/toolbar/button"
  mode="inline"

/></$reveal></$list></$set>
<$reveal type="popup" state=<<em-state>>  class="editormagic-popup 
tc-popup-keep">
<div>
<$set name="selectionEnd" filter="[<em-state>get[selection-end]]" 
select="0"> 

{{||EditorMagic/_Popup}}

</$set></div>
</$reveal>
</$edit>
</$set>

Lots of room for clean up and optimizations, but I am pressed for time 
today and that should get you going.

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywikidev/9b5bd69d-0a92-4236-bf0d-9d0085e9cf9do%40googlegroups.com.

Reply via email to