aboutsummaryrefslogtreecommitdiff
path: root/autoload/snippets/typescript.kak
blob: f2d3e8f3b935e33d7a565ddc637d3f2416e55ffb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
hook global BufSetOption filetype=(?:javascript|typescript|jsx|tsx) %{
  define-snippet buffer snip-react-component
  define-snippet buffer snip-react-usestate
}

define-command snip-react-usestate %{
  prompt 'Name: ' %{
    set-register n %val{text}
    prompt 'Initial value: ' %{
      set-register v %val{text}
      evaluate-commands %sh{
        st=$(echo "$kak_reg_n" | sed 's/^[A-Z]/\L\0/')
        setst="set$(echo "$kak_reg_n" | sed 's/^[a-z]/\U\0/')"
        echo "execute-keys '<esc>,iconst [$st, $setst] = useState($kak_reg_v);<esc>'"
      }
    }
  }
}

define-command snip-react-component %{
  prompt 'Component name: ' %{
    execute-keys "<esc>,itype %val{text}Prop = {<ret>}<ret><ret>"
    execute-keys "<esc>,iexport const %val{text} = ({  }: %val{text}Prop) => {<ret>"
    execute-keys "  return <lt>div><lt>/div>;"
    execute-keys "<ret>};<esc>kwlt;"
  }
}