convert message to satisfy FileModel type
This commit is contained in:
@@ -12,8 +12,10 @@ inoremap <silent> <expr> <Down> coc#pum#visible() ? coc#pum#next(0) : coc#inline
|
|||||||
inoremap <silent> <expr> <C-P> coc#pum#visible() ? coc#pum#prev(1) : coc#inline#visible() ? coc#inline#prev() : "\"
|
inoremap <silent> <expr> <C-P> coc#pum#visible() ? coc#pum#prev(1) : coc#inline#visible() ? coc#inline#prev() : "\"
|
||||||
inoremap <silent> <expr> <C-N> coc#pum#visible() ? coc#pum#next(1) : coc#inline#visible() ? coc#inline#next() : "\"
|
inoremap <silent> <expr> <C-N> coc#pum#visible() ? coc#pum#next(1) : coc#inline#visible() ? coc#inline#next() : "\"
|
||||||
nnoremap :NERDTreeFind
|
nnoremap :NERDTreeFind
|
||||||
|
snoremap <silent> c
|
||||||
nnoremap :NERDTree
|
nnoremap :NERDTree
|
||||||
nmap <Plug>(ctrlp)
|
nmap <Plug>(ctrlp)
|
||||||
|
snoremap "_c
|
||||||
nnoremap :NERDTreeToggle
|
nnoremap :NERDTreeToggle
|
||||||
xmap \T <Plug>(table-mode-tableize-delimiter)
|
xmap \T <Plug>(table-mode-tableize-delimiter)
|
||||||
xmap \tt <Plug>(table-mode-tableize)
|
xmap \tt <Plug>(table-mode-tableize)
|
||||||
@@ -26,6 +28,10 @@ nnoremap \1 :call SN("1")
|
|||||||
nmap \rn <Plug>(coc-rename)
|
nmap \rn <Plug>(coc-rename)
|
||||||
xmap gx <Plug>NetrwBrowseXVis
|
xmap gx <Plug>NetrwBrowseXVis
|
||||||
nmap gx <Plug>NetrwBrowseX
|
nmap gx <Plug>NetrwBrowseX
|
||||||
|
snoremap <C-R> "_c
|
||||||
|
snoremap <silent> <C-H> c
|
||||||
|
snoremap <silent> <Del> c
|
||||||
|
snoremap <silent> <BS> c
|
||||||
nnoremap <silent> <Plug>GitGutterPreviewHunk :call gitgutter#utility#warn('Please change your map <Plug>GitGutterPreviewHunk to <Plug>(GitGutterPreviewHunk)')
|
nnoremap <silent> <Plug>GitGutterPreviewHunk :call gitgutter#utility#warn('Please change your map <Plug>GitGutterPreviewHunk to <Plug>(GitGutterPreviewHunk)')
|
||||||
nnoremap <silent> <Plug>(GitGutterPreviewHunk) :GitGutterPreviewHunk
|
nnoremap <silent> <Plug>(GitGutterPreviewHunk) :GitGutterPreviewHunk
|
||||||
nnoremap <silent> <Plug>GitGutterUndoHunk :call gitgutter#utility#warn('Please change your map <Plug>GitGutterUndoHunk to <Plug>(GitGutterUndoHunk)')
|
nnoremap <silent> <Plug>GitGutterUndoHunk :call gitgutter#utility#warn('Please change your map <Plug>GitGutterUndoHunk to <Plug>(GitGutterUndoHunk)')
|
||||||
@@ -132,8 +138,6 @@ set shiftwidth=4
|
|||||||
set smarttab
|
set smarttab
|
||||||
set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc,.snap
|
set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc,.snap
|
||||||
set updatetime=500
|
set updatetime=500
|
||||||
set winminheight=0
|
|
||||||
set winminwidth=0
|
|
||||||
let s:so_save = &g:so | let s:siso_save = &g:siso | setg so=0 siso=0 | setl so=-1 siso=-1
|
let s:so_save = &g:so | let s:siso_save = &g:siso | setg so=0 siso=0 | setl so=-1 siso=-1
|
||||||
let v:this_session=expand("<sfile>:p")
|
let v:this_session=expand("<sfile>:p")
|
||||||
silent only
|
silent only
|
||||||
@@ -149,17 +153,14 @@ else
|
|||||||
endif
|
endif
|
||||||
badd +1 build/sw.js
|
badd +1 build/sw.js
|
||||||
badd +1 build/version.txt
|
badd +1 build/version.txt
|
||||||
badd +135 src/Model/Chat/chatModel.ts
|
badd +87 src/Model/Global/fileTransferModel.ts
|
||||||
badd +211 src/ViewModel/Chat/chatViewModel.ts
|
badd +1 node_modules/uuid/dist/parse.js
|
||||||
badd +205 src/ViewModel/Chat/chatMessageViewModel.ts
|
badd +246 src/Model/Utility/utility.ts
|
||||||
badd +1 src/Model/Chat/chatListModel.ts
|
badd +0 src/Model/Global/storageModel.ts
|
||||||
badd +1 src/ViewModel/Pages/settingsPageViewModel.ts
|
|
||||||
argglobal
|
argglobal
|
||||||
%argdel
|
%argdel
|
||||||
$argadd src/ViewModel/Pages/settingsPageViewModel.ts
|
|
||||||
set stal=2
|
set stal=2
|
||||||
tabnew +setlocal\ bufhidden=wipe
|
tabnew +setlocal\ bufhidden=wipe
|
||||||
tabnew +setlocal\ bufhidden=wipe
|
|
||||||
tabrewind
|
tabrewind
|
||||||
edit build/sw.js
|
edit build/sw.js
|
||||||
let s:save_splitbelow = &splitbelow
|
let s:save_splitbelow = &splitbelow
|
||||||
@@ -181,13 +182,13 @@ set winminheight=0
|
|||||||
set winheight=1
|
set winheight=1
|
||||||
set winminwidth=0
|
set winminwidth=0
|
||||||
set winwidth=1
|
set winwidth=1
|
||||||
exe 'vert 1resize ' . ((&columns * 31 + 103) / 207)
|
exe 'vert 1resize ' . ((&columns * 31 + 137) / 274)
|
||||||
exe 'vert 2resize ' . ((&columns * 95 + 103) / 207)
|
exe 'vert 2resize ' . ((&columns * 120 + 137) / 274)
|
||||||
exe 'vert 3resize ' . ((&columns * 95 + 103) / 207)
|
exe 'vert 3resize ' . ((&columns * 121 + 137) / 274)
|
||||||
argglobal
|
argglobal
|
||||||
enew
|
enew
|
||||||
file NERD_tree_tab_1
|
file NERD_tree_tab_2
|
||||||
balt build/sw.js
|
balt build/version.txt
|
||||||
let s:cpo_save=&cpo
|
let s:cpo_save=&cpo
|
||||||
set cpo&vim
|
set cpo&vim
|
||||||
nnoremap <buffer> <silent> <NL> :call nerdtree#ui_glue#invokeKeyMap("<C-j>")
|
nnoremap <buffer> <silent> <NL> :call nerdtree#ui_glue#invokeKeyMap("<C-j>")
|
||||||
@@ -210,14 +211,6 @@ nnoremap <buffer> <silent> R :call nerdtree#ui_glue#invokeKeyMap("R")
|
|||||||
nnoremap <buffer> <silent> T :call nerdtree#ui_glue#invokeKeyMap("T")
|
nnoremap <buffer> <silent> T :call nerdtree#ui_glue#invokeKeyMap("T")
|
||||||
nnoremap <buffer> <silent> U :call nerdtree#ui_glue#invokeKeyMap("U")
|
nnoremap <buffer> <silent> U :call nerdtree#ui_glue#invokeKeyMap("U")
|
||||||
nnoremap <buffer> <silent> X :call nerdtree#ui_glue#invokeKeyMap("X")
|
nnoremap <buffer> <silent> X :call nerdtree#ui_glue#invokeKeyMap("X")
|
||||||
nmap <buffer> [c <Plug>(GitGutterPrevHunk)
|
|
||||||
nmap <buffer> \hp <Plug>(GitGutterPreviewHunk)
|
|
||||||
nmap <buffer> \hu <Plug>(GitGutterUndoHunk)
|
|
||||||
nmap <buffer> \hs <Plug>(GitGutterStageHunk)
|
|
||||||
xmap <buffer> \hs <Plug>(GitGutterStageHunk)
|
|
||||||
nmap <buffer> ]c <Plug>(GitGutterNextHunk)
|
|
||||||
xmap <buffer> ac <Plug>(GitGutterTextObjectOuterVisual)
|
|
||||||
omap <buffer> ac <Plug>(GitGutterTextObjectOuterPending)
|
|
||||||
nnoremap <buffer> <silent> cd :call nerdtree#ui_glue#invokeKeyMap("cd")
|
nnoremap <buffer> <silent> cd :call nerdtree#ui_glue#invokeKeyMap("cd")
|
||||||
nnoremap <buffer> <silent> e :call nerdtree#ui_glue#invokeKeyMap("e")
|
nnoremap <buffer> <silent> e :call nerdtree#ui_glue#invokeKeyMap("e")
|
||||||
nnoremap <buffer> <silent> f :call nerdtree#ui_glue#invokeKeyMap("f")
|
nnoremap <buffer> <silent> f :call nerdtree#ui_glue#invokeKeyMap("f")
|
||||||
@@ -225,8 +218,6 @@ nnoremap <buffer> <silent> go :call nerdtree#ui_glue#invokeKeyMap("go")
|
|||||||
nnoremap <buffer> <silent> gb :call nerdtree#ui_glue#invokeKeyMap("gb")
|
nnoremap <buffer> <silent> gb :call nerdtree#ui_glue#invokeKeyMap("gb")
|
||||||
nnoremap <buffer> <silent> gi :call nerdtree#ui_glue#invokeKeyMap("gi")
|
nnoremap <buffer> <silent> gi :call nerdtree#ui_glue#invokeKeyMap("gi")
|
||||||
nnoremap <buffer> <silent> gs :call nerdtree#ui_glue#invokeKeyMap("gs")
|
nnoremap <buffer> <silent> gs :call nerdtree#ui_glue#invokeKeyMap("gs")
|
||||||
xmap <buffer> ic <Plug>(GitGutterTextObjectInnerVisual)
|
|
||||||
omap <buffer> ic <Plug>(GitGutterTextObjectInnerPending)
|
|
||||||
nnoremap <buffer> <silent> i :call nerdtree#ui_glue#invokeKeyMap("i")
|
nnoremap <buffer> <silent> i :call nerdtree#ui_glue#invokeKeyMap("i")
|
||||||
nnoremap <buffer> <silent> m :call nerdtree#ui_glue#invokeKeyMap("m")
|
nnoremap <buffer> <silent> m :call nerdtree#ui_glue#invokeKeyMap("m")
|
||||||
nnoremap <buffer> <silent> o :call nerdtree#ui_glue#invokeKeyMap("o")
|
nnoremap <buffer> <silent> o :call nerdtree#ui_glue#invokeKeyMap("o")
|
||||||
@@ -524,12 +515,12 @@ setlocal wrap
|
|||||||
setlocal wrapmargin=0
|
setlocal wrapmargin=0
|
||||||
silent! normal! zE
|
silent! normal! zE
|
||||||
let &fdl = &fdl
|
let &fdl = &fdl
|
||||||
let s:l = 1 - ((0 * winheight(0) + 16) / 33)
|
let s:l = 23 - ((22 * winheight(0) + 15) / 31)
|
||||||
if s:l < 1 | let s:l = 1 | endif
|
if s:l < 1 | let s:l = 1 | endif
|
||||||
keepjumps exe s:l
|
keepjumps exe s:l
|
||||||
normal! zt
|
normal! zt
|
||||||
keepjumps 1
|
keepjumps 23
|
||||||
normal! 032|
|
normal! 028|
|
||||||
wincmd w
|
wincmd w
|
||||||
argglobal
|
argglobal
|
||||||
if bufexists(fnamemodify("build/version.txt", ":p")) | buffer build/version.txt | else | edit build/version.txt | endif
|
if bufexists(fnamemodify("build/version.txt", ":p")) | buffer build/version.txt | else | edit build/version.txt | endif
|
||||||
@@ -681,27 +672,24 @@ setlocal wrap
|
|||||||
setlocal wrapmargin=0
|
setlocal wrapmargin=0
|
||||||
silent! normal! zE
|
silent! normal! zE
|
||||||
let &fdl = &fdl
|
let &fdl = &fdl
|
||||||
let s:l = 1 - ((0 * winheight(0) + 16) / 33)
|
let s:l = 1 - ((0 * winheight(0) + 15) / 31)
|
||||||
if s:l < 1 | let s:l = 1 | endif
|
if s:l < 1 | let s:l = 1 | endif
|
||||||
keepjumps exe s:l
|
keepjumps exe s:l
|
||||||
normal! zt
|
normal! zt
|
||||||
keepjumps 1
|
keepjumps 1
|
||||||
normal! 014|
|
normal! 015|
|
||||||
wincmd w
|
wincmd w
|
||||||
exe 'vert 1resize ' . ((&columns * 31 + 103) / 207)
|
exe 'vert 1resize ' . ((&columns * 31 + 137) / 274)
|
||||||
exe 'vert 2resize ' . ((&columns * 95 + 103) / 207)
|
exe 'vert 2resize ' . ((&columns * 120 + 137) / 274)
|
||||||
exe 'vert 3resize ' . ((&columns * 95 + 103) / 207)
|
exe 'vert 3resize ' . ((&columns * 121 + 137) / 274)
|
||||||
tabnext
|
tabnext
|
||||||
edit src/Model/Chat/chatListModel.ts
|
edit src/Model/Global/fileTransferModel.ts
|
||||||
let s:save_splitbelow = &splitbelow
|
let s:save_splitbelow = &splitbelow
|
||||||
let s:save_splitright = &splitright
|
let s:save_splitright = &splitright
|
||||||
set splitbelow splitright
|
set splitbelow splitright
|
||||||
wincmd _ | wincmd |
|
wincmd _ | wincmd |
|
||||||
vsplit
|
vsplit
|
||||||
wincmd _ | wincmd |
|
1wincmd h
|
||||||
vsplit
|
|
||||||
2wincmd h
|
|
||||||
wincmd w
|
|
||||||
wincmd w
|
wincmd w
|
||||||
let &splitbelow = s:save_splitbelow
|
let &splitbelow = s:save_splitbelow
|
||||||
let &splitright = s:save_splitright
|
let &splitright = s:save_splitright
|
||||||
@@ -712,192 +700,10 @@ set winminheight=0
|
|||||||
set winheight=1
|
set winheight=1
|
||||||
set winminwidth=0
|
set winminwidth=0
|
||||||
set winwidth=1
|
set winwidth=1
|
||||||
exe 'vert 1resize ' . ((&columns * 31 + 103) / 207)
|
exe 'vert 1resize ' . ((&columns * 136 + 137) / 274)
|
||||||
exe 'vert 2resize ' . ((&columns * 87 + 103) / 207)
|
exe 'vert 2resize ' . ((&columns * 137 + 137) / 274)
|
||||||
exe 'vert 3resize ' . ((&columns * 87 + 103) / 207)
|
|
||||||
argglobal
|
argglobal
|
||||||
enew
|
balt build/sw.js
|
||||||
file NERD_tree_tab_2
|
|
||||||
let s:cpo_save=&cpo
|
|
||||||
set cpo&vim
|
|
||||||
nnoremap <buffer> <silent> <NL> :call nerdtree#ui_glue#invokeKeyMap("<C-j>")
|
|
||||||
nnoremap <buffer> <silent> :call nerdtree#ui_glue#invokeKeyMap("<C-k>")
|
|
||||||
nnoremap <buffer> <silent> ␍ :call nerdtree#ui_glue#invokeKeyMap("<CR>")
|
|
||||||
nnoremap <buffer> <silent> ? :call nerdtree#ui_glue#invokeKeyMap("?")
|
|
||||||
nnoremap <buffer> <silent> A :call nerdtree#ui_glue#invokeKeyMap("A")
|
|
||||||
nnoremap <buffer> <silent> B :call nerdtree#ui_glue#invokeKeyMap("B")
|
|
||||||
nnoremap <buffer> <silent> C :call nerdtree#ui_glue#invokeKeyMap("C")
|
|
||||||
nnoremap <buffer> <silent> CD :call nerdtree#ui_glue#invokeKeyMap("CD")
|
|
||||||
nnoremap <buffer> <silent> D :call nerdtree#ui_glue#invokeKeyMap("D")
|
|
||||||
nnoremap <buffer> <silent> FL :call nerdtree#ui_glue#invokeKeyMap("FL")
|
|
||||||
nnoremap <buffer> <silent> F :call nerdtree#ui_glue#invokeKeyMap("F")
|
|
||||||
nnoremap <buffer> <silent> I :call nerdtree#ui_glue#invokeKeyMap("I")
|
|
||||||
nnoremap <buffer> <silent> J :call nerdtree#ui_glue#invokeKeyMap("J")
|
|
||||||
nnoremap <buffer> <silent> K :call nerdtree#ui_glue#invokeKeyMap("K")
|
|
||||||
nnoremap <buffer> <silent> O :call nerdtree#ui_glue#invokeKeyMap("O")
|
|
||||||
nnoremap <buffer> <silent> P :call nerdtree#ui_glue#invokeKeyMap("P")
|
|
||||||
nnoremap <buffer> <silent> R :call nerdtree#ui_glue#invokeKeyMap("R")
|
|
||||||
nnoremap <buffer> <silent> T :call nerdtree#ui_glue#invokeKeyMap("T")
|
|
||||||
nnoremap <buffer> <silent> U :call nerdtree#ui_glue#invokeKeyMap("U")
|
|
||||||
nnoremap <buffer> <silent> X :call nerdtree#ui_glue#invokeKeyMap("X")
|
|
||||||
nnoremap <buffer> <silent> cd :call nerdtree#ui_glue#invokeKeyMap("cd")
|
|
||||||
nnoremap <buffer> <silent> e :call nerdtree#ui_glue#invokeKeyMap("e")
|
|
||||||
nnoremap <buffer> <silent> f :call nerdtree#ui_glue#invokeKeyMap("f")
|
|
||||||
nnoremap <buffer> <silent> go :call nerdtree#ui_glue#invokeKeyMap("go")
|
|
||||||
nnoremap <buffer> <silent> gb :call nerdtree#ui_glue#invokeKeyMap("gb")
|
|
||||||
nnoremap <buffer> <silent> gi :call nerdtree#ui_glue#invokeKeyMap("gi")
|
|
||||||
nnoremap <buffer> <silent> gs :call nerdtree#ui_glue#invokeKeyMap("gs")
|
|
||||||
nnoremap <buffer> <silent> i :call nerdtree#ui_glue#invokeKeyMap("i")
|
|
||||||
nnoremap <buffer> <silent> m :call nerdtree#ui_glue#invokeKeyMap("m")
|
|
||||||
nnoremap <buffer> <silent> o :call nerdtree#ui_glue#invokeKeyMap("o")
|
|
||||||
nnoremap <buffer> <silent> p :call nerdtree#ui_glue#invokeKeyMap("p")
|
|
||||||
nnoremap <buffer> <silent> q :call nerdtree#ui_glue#invokeKeyMap("q")
|
|
||||||
nnoremap <buffer> <silent> r :call nerdtree#ui_glue#invokeKeyMap("r")
|
|
||||||
nnoremap <buffer> <silent> s :call nerdtree#ui_glue#invokeKeyMap("s")
|
|
||||||
nnoremap <buffer> <silent> t :call nerdtree#ui_glue#invokeKeyMap("t")
|
|
||||||
nnoremap <buffer> <silent> u :call nerdtree#ui_glue#invokeKeyMap("u")
|
|
||||||
nnoremap <buffer> <silent> x :call nerdtree#ui_glue#invokeKeyMap("x")
|
|
||||||
nnoremap <buffer> <silent> <MiddleMouse> :call nerdtree#ui_glue#invokeKeyMap("<MiddleMouse>")
|
|
||||||
nnoremap <buffer> <silent> <2-LeftMouse> :call nerdtree#ui_glue#invokeKeyMap("<2-LeftMouse>")
|
|
||||||
nnoremap <buffer> <silent> <C-K> :call nerdtree#ui_glue#invokeKeyMap("<C-k>")
|
|
||||||
nnoremap <buffer> <silent> <C-J> :call nerdtree#ui_glue#invokeKeyMap("<C-j>")
|
|
||||||
nnoremap <buffer> <silent> <LeftRelease> <LeftRelease>:call nerdtree#ui_glue#invokeKeyMap("<LeftRelease>")
|
|
||||||
let &cpo=s:cpo_save
|
|
||||||
unlet s:cpo_save
|
|
||||||
setlocal keymap=
|
|
||||||
setlocal noarabic
|
|
||||||
setlocal noautoindent
|
|
||||||
setlocal backupcopy=
|
|
||||||
setlocal balloonexpr=
|
|
||||||
setlocal nobinary
|
|
||||||
setlocal nobreakindent
|
|
||||||
setlocal breakindentopt=
|
|
||||||
setlocal bufhidden=hide
|
|
||||||
setlocal nobuflisted
|
|
||||||
setlocal buftype=nofile
|
|
||||||
setlocal nocindent
|
|
||||||
setlocal cinkeys=0{,0},0),0],:,0#,!^F,o,O,e
|
|
||||||
setlocal cinoptions=
|
|
||||||
setlocal cinscopedecls=public,protected,private
|
|
||||||
setlocal cinwords=if,else,while,do,for,switch
|
|
||||||
setlocal colorcolumn=
|
|
||||||
setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
|
|
||||||
setlocal commentstring=/*%s*/
|
|
||||||
setlocal complete=.,w,b,u,t,i
|
|
||||||
setlocal concealcursor=nvic
|
|
||||||
setlocal conceallevel=2
|
|
||||||
setlocal completefunc=
|
|
||||||
setlocal nocopyindent
|
|
||||||
setlocal cryptmethod=
|
|
||||||
setlocal nocursorbind
|
|
||||||
setlocal nocursorcolumn
|
|
||||||
setlocal cursorline
|
|
||||||
setlocal cursorlineopt=both
|
|
||||||
setlocal define=
|
|
||||||
setlocal dictionary=
|
|
||||||
setlocal nodiff
|
|
||||||
setlocal equalprg=
|
|
||||||
setlocal errorformat=
|
|
||||||
setlocal noexpandtab
|
|
||||||
if &filetype != 'nerdtree'
|
|
||||||
setlocal filetype=nerdtree
|
|
||||||
endif
|
|
||||||
setlocal fillchars=
|
|
||||||
setlocal fixendofline
|
|
||||||
setlocal foldcolumn=0
|
|
||||||
setlocal nofoldenable
|
|
||||||
setlocal foldexpr=0
|
|
||||||
setlocal foldignore=#
|
|
||||||
setlocal foldlevel=0
|
|
||||||
setlocal foldmarker={{{,}}}
|
|
||||||
setlocal foldmethod=manual
|
|
||||||
setlocal foldminlines=1
|
|
||||||
setlocal foldnestmax=20
|
|
||||||
setlocal foldtext=foldtext()
|
|
||||||
setlocal formatexpr=
|
|
||||||
setlocal formatoptions=tcq
|
|
||||||
setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
|
|
||||||
setlocal formatprg=
|
|
||||||
setlocal grepprg=
|
|
||||||
setlocal iminsert=0
|
|
||||||
setlocal imsearch=-1
|
|
||||||
setlocal include=
|
|
||||||
setlocal includeexpr=
|
|
||||||
setlocal indentexpr=
|
|
||||||
setlocal indentkeys=0{,0},0),0],:,0#,!^F,o,O,e
|
|
||||||
setlocal noinfercase
|
|
||||||
setlocal iskeyword=@,48-57,_,192-255
|
|
||||||
setlocal keywordprg=
|
|
||||||
setlocal nolinebreak
|
|
||||||
setlocal nolisp
|
|
||||||
setlocal lispoptions=
|
|
||||||
setlocal lispwords=
|
|
||||||
setlocal nolist
|
|
||||||
setlocal listchars=
|
|
||||||
setlocal makeencoding=
|
|
||||||
setlocal makeprg=
|
|
||||||
setlocal matchpairs=(:),{:},[:]
|
|
||||||
setlocal nomodeline
|
|
||||||
setlocal nomodifiable
|
|
||||||
setlocal nrformats=bin,octal,hex
|
|
||||||
set number
|
|
||||||
setlocal nonumber
|
|
||||||
setlocal numberwidth=4
|
|
||||||
setlocal omnifunc=
|
|
||||||
setlocal path=
|
|
||||||
setlocal nopreserveindent
|
|
||||||
setlocal nopreviewwindow
|
|
||||||
setlocal quoteescape=\\
|
|
||||||
setlocal readonly
|
|
||||||
setlocal norelativenumber
|
|
||||||
setlocal norightleft
|
|
||||||
setlocal rightleftcmd=search
|
|
||||||
setlocal noscrollbind
|
|
||||||
setlocal scrolloff=-1
|
|
||||||
setlocal shiftwidth=4
|
|
||||||
setlocal noshortname
|
|
||||||
setlocal showbreak=
|
|
||||||
setlocal sidescrolloff=-1
|
|
||||||
set signcolumn=yes
|
|
||||||
setlocal signcolumn=yes
|
|
||||||
setlocal nosmartindent
|
|
||||||
setlocal nosmoothscroll
|
|
||||||
setlocal softtabstop=0
|
|
||||||
setlocal nospell
|
|
||||||
setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
|
|
||||||
setlocal spellfile=
|
|
||||||
setlocal spelllang=en
|
|
||||||
setlocal spelloptions=
|
|
||||||
setlocal statusline=%{exists('b:NERDTree')?b:NERDTree.root.path.str():''}
|
|
||||||
setlocal suffixesadd=
|
|
||||||
setlocal noswapfile
|
|
||||||
setlocal synmaxcol=3000
|
|
||||||
if &syntax != 'nerdtree'
|
|
||||||
setlocal syntax=nerdtree
|
|
||||||
endif
|
|
||||||
setlocal tabstop=8
|
|
||||||
setlocal tagcase=
|
|
||||||
setlocal tagfunc=
|
|
||||||
setlocal tags=
|
|
||||||
setlocal termwinkey=
|
|
||||||
setlocal termwinscroll=10000
|
|
||||||
setlocal termwinsize=
|
|
||||||
setlocal textwidth=0
|
|
||||||
setlocal thesaurus=
|
|
||||||
setlocal thesaurusfunc=
|
|
||||||
setlocal noundofile
|
|
||||||
setlocal undolevels=-123456
|
|
||||||
setlocal varsofttabstop=
|
|
||||||
setlocal vartabstop=
|
|
||||||
setlocal virtualedit=
|
|
||||||
setlocal wincolor=
|
|
||||||
setlocal nowinfixheight
|
|
||||||
setlocal winfixwidth
|
|
||||||
setlocal nowrap
|
|
||||||
setlocal wrapmargin=0
|
|
||||||
wincmd w
|
|
||||||
argglobal
|
|
||||||
balt src/ViewModel/Chat/chatMessageViewModel.ts
|
|
||||||
let s:cpo_save=&cpo
|
let s:cpo_save=&cpo
|
||||||
set cpo&vim
|
set cpo&vim
|
||||||
nmap <buffer> [c <Plug>(GitGutterPrevHunk)
|
nmap <buffer> [c <Plug>(GitGutterPrevHunk)
|
||||||
@@ -1045,331 +851,173 @@ setlocal wrap
|
|||||||
setlocal wrapmargin=0
|
setlocal wrapmargin=0
|
||||||
silent! normal! zE
|
silent! normal! zE
|
||||||
let &fdl = &fdl
|
let &fdl = &fdl
|
||||||
let s:l = 105 - ((0 * winheight(0) + 16) / 33)
|
let s:l = 115 - ((15 * winheight(0) + 15) / 31)
|
||||||
if s:l < 1 | let s:l = 1 | endif
|
if s:l < 1 | let s:l = 1 | endif
|
||||||
keepjumps exe s:l
|
keepjumps exe s:l
|
||||||
normal! zt
|
normal! zt
|
||||||
keepjumps 105
|
keepjumps 115
|
||||||
normal! $
|
|
||||||
wincmd w
|
|
||||||
argglobal
|
|
||||||
if bufexists(fnamemodify("src/Model/Chat/chatModel.ts", ":p")) | buffer src/Model/Chat/chatModel.ts | else | edit src/Model/Chat/chatModel.ts | endif
|
|
||||||
balt src/Model/Chat/chatListModel.ts
|
|
||||||
let s:cpo_save=&cpo
|
|
||||||
set cpo&vim
|
|
||||||
nmap <buffer> [c <Plug>(GitGutterPrevHunk)
|
|
||||||
nmap <buffer> \hp <Plug>(GitGutterPreviewHunk)
|
|
||||||
nmap <buffer> \hu <Plug>(GitGutterUndoHunk)
|
|
||||||
nmap <buffer> \hs <Plug>(GitGutterStageHunk)
|
|
||||||
xmap <buffer> \hs <Plug>(GitGutterStageHunk)
|
|
||||||
nmap <buffer> ]c <Plug>(GitGutterNextHunk)
|
|
||||||
xmap <buffer> ac <Plug>(GitGutterTextObjectOuterVisual)
|
|
||||||
omap <buffer> ac <Plug>(GitGutterTextObjectOuterPending)
|
|
||||||
xmap <buffer> ic <Plug>(GitGutterTextObjectInnerVisual)
|
|
||||||
omap <buffer> ic <Plug>(GitGutterTextObjectInnerPending)
|
|
||||||
let &cpo=s:cpo_save
|
|
||||||
unlet s:cpo_save
|
|
||||||
setlocal keymap=
|
|
||||||
setlocal noarabic
|
|
||||||
setlocal autoindent
|
|
||||||
setlocal backupcopy=
|
|
||||||
setlocal balloonexpr=
|
|
||||||
setlocal nobinary
|
|
||||||
setlocal nobreakindent
|
|
||||||
setlocal breakindentopt=
|
|
||||||
setlocal bufhidden=
|
|
||||||
setlocal buflisted
|
|
||||||
setlocal buftype=
|
|
||||||
setlocal nocindent
|
|
||||||
setlocal cinkeys=0{,0},0),0],:,0#,!^F,o,O,e
|
|
||||||
setlocal cinoptions=
|
|
||||||
setlocal cinscopedecls=public,protected,private
|
|
||||||
setlocal cinwords=if,else,while,do,for,switch
|
|
||||||
setlocal colorcolumn=
|
|
||||||
setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
|
|
||||||
setlocal commentstring=//\ %s
|
|
||||||
setlocal complete=.,w,b,u,t,i
|
|
||||||
setlocal concealcursor=
|
|
||||||
setlocal conceallevel=0
|
|
||||||
setlocal completefunc=
|
|
||||||
setlocal nocopyindent
|
|
||||||
setlocal cryptmethod=
|
|
||||||
setlocal nocursorbind
|
|
||||||
setlocal nocursorcolumn
|
|
||||||
setlocal nocursorline
|
|
||||||
setlocal cursorlineopt=both
|
|
||||||
setlocal define=
|
|
||||||
setlocal dictionary=
|
|
||||||
setlocal nodiff
|
|
||||||
setlocal equalprg=
|
|
||||||
setlocal errorformat=%+A\ %#%f\ %#(%l\\,%c):\ %m,%C%m
|
|
||||||
setlocal noexpandtab
|
|
||||||
if &filetype != 'typescript'
|
|
||||||
setlocal filetype=typescript
|
|
||||||
endif
|
|
||||||
setlocal fillchars=
|
|
||||||
setlocal fixendofline
|
|
||||||
setlocal foldcolumn=0
|
|
||||||
setlocal foldenable
|
|
||||||
setlocal foldexpr=0
|
|
||||||
setlocal foldignore=#
|
|
||||||
setlocal foldlevel=0
|
|
||||||
setlocal foldmarker={{{,}}}
|
|
||||||
setlocal foldmethod=manual
|
|
||||||
setlocal foldminlines=1
|
|
||||||
setlocal foldnestmax=20
|
|
||||||
setlocal foldtext=foldtext()
|
|
||||||
setlocal formatexpr=
|
|
||||||
setlocal formatoptions=croql
|
|
||||||
setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
|
|
||||||
setlocal formatprg=
|
|
||||||
setlocal grepprg=
|
|
||||||
setlocal iminsert=0
|
|
||||||
setlocal imsearch=-1
|
|
||||||
setlocal include=
|
|
||||||
setlocal includeexpr=
|
|
||||||
setlocal indentexpr=GetTypescriptIndent()
|
|
||||||
setlocal indentkeys=0{,0},0),0],:,0#,!^F,o,O,e,0],0)
|
|
||||||
setlocal noinfercase
|
|
||||||
setlocal iskeyword=@,48-57,_,192-255,$
|
|
||||||
setlocal keywordprg=
|
|
||||||
setlocal nolinebreak
|
|
||||||
setlocal nolisp
|
|
||||||
setlocal lispoptions=
|
|
||||||
setlocal lispwords=
|
|
||||||
setlocal nolist
|
|
||||||
setlocal listchars=
|
|
||||||
setlocal makeencoding=
|
|
||||||
setlocal makeprg=tsc\ \ $*\ %
|
|
||||||
setlocal matchpairs=(:),{:},[:]
|
|
||||||
setlocal nomodeline
|
|
||||||
setlocal modifiable
|
|
||||||
setlocal nrformats=bin,octal,hex
|
|
||||||
set number
|
|
||||||
setlocal number
|
|
||||||
setlocal numberwidth=4
|
|
||||||
setlocal omnifunc=
|
|
||||||
setlocal path=
|
|
||||||
setlocal nopreserveindent
|
|
||||||
setlocal nopreviewwindow
|
|
||||||
setlocal quoteescape=\\
|
|
||||||
setlocal noreadonly
|
|
||||||
setlocal norelativenumber
|
|
||||||
setlocal norightleft
|
|
||||||
setlocal rightleftcmd=search
|
|
||||||
setlocal noscrollbind
|
|
||||||
setlocal scrolloff=-1
|
|
||||||
setlocal shiftwidth=4
|
|
||||||
setlocal noshortname
|
|
||||||
setlocal showbreak=
|
|
||||||
setlocal sidescrolloff=-1
|
|
||||||
set signcolumn=yes
|
|
||||||
setlocal signcolumn=yes
|
|
||||||
setlocal nosmartindent
|
|
||||||
setlocal nosmoothscroll
|
|
||||||
setlocal softtabstop=0
|
|
||||||
setlocal nospell
|
|
||||||
setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
|
|
||||||
setlocal spellfile=
|
|
||||||
setlocal spelllang=en
|
|
||||||
setlocal spelloptions=
|
|
||||||
setlocal statusline=
|
|
||||||
setlocal suffixesadd=.ts,.tsx
|
|
||||||
setlocal swapfile
|
|
||||||
setlocal synmaxcol=3000
|
|
||||||
if &syntax != 'typescript'
|
|
||||||
setlocal syntax=typescript
|
|
||||||
endif
|
|
||||||
setlocal tabstop=8
|
|
||||||
setlocal tagcase=
|
|
||||||
setlocal tagfunc=
|
|
||||||
setlocal tags=
|
|
||||||
setlocal termwinkey=
|
|
||||||
setlocal termwinscroll=10000
|
|
||||||
setlocal termwinsize=
|
|
||||||
setlocal textwidth=0
|
|
||||||
setlocal thesaurus=
|
|
||||||
setlocal thesaurusfunc=
|
|
||||||
setlocal noundofile
|
|
||||||
setlocal undolevels=-123456
|
|
||||||
setlocal varsofttabstop=
|
|
||||||
setlocal vartabstop=
|
|
||||||
setlocal virtualedit=
|
|
||||||
setlocal wincolor=
|
|
||||||
setlocal nowinfixheight
|
|
||||||
setlocal nowinfixwidth
|
|
||||||
setlocal wrap
|
|
||||||
setlocal wrapmargin=0
|
|
||||||
silent! normal! zE
|
|
||||||
let &fdl = &fdl
|
|
||||||
let s:l = 56 - ((20 * winheight(0) + 16) / 33)
|
|
||||||
if s:l < 1 | let s:l = 1 | endif
|
|
||||||
keepjumps exe s:l
|
|
||||||
normal! zt
|
|
||||||
keepjumps 56
|
|
||||||
normal! $
|
|
||||||
wincmd w
|
|
||||||
3wincmd w
|
|
||||||
exe 'vert 1resize ' . ((&columns * 31 + 103) / 207)
|
|
||||||
exe 'vert 2resize ' . ((&columns * 87 + 103) / 207)
|
|
||||||
exe 'vert 3resize ' . ((&columns * 87 + 103) / 207)
|
|
||||||
tabnext
|
|
||||||
edit src/ViewModel/Pages/settingsPageViewModel.ts
|
|
||||||
argglobal
|
|
||||||
balt src/Model/Chat/chatModel.ts
|
|
||||||
let s:cpo_save=&cpo
|
|
||||||
set cpo&vim
|
|
||||||
nmap <buffer> [c <Plug>(GitGutterPrevHunk)
|
|
||||||
nmap <buffer> \hp <Plug>(GitGutterPreviewHunk)
|
|
||||||
nmap <buffer> \hu <Plug>(GitGutterUndoHunk)
|
|
||||||
nmap <buffer> \hs <Plug>(GitGutterStageHunk)
|
|
||||||
xmap <buffer> \hs <Plug>(GitGutterStageHunk)
|
|
||||||
nmap <buffer> ]c <Plug>(GitGutterNextHunk)
|
|
||||||
xmap <buffer> ac <Plug>(GitGutterTextObjectOuterVisual)
|
|
||||||
omap <buffer> ac <Plug>(GitGutterTextObjectOuterPending)
|
|
||||||
xmap <buffer> ic <Plug>(GitGutterTextObjectInnerVisual)
|
|
||||||
omap <buffer> ic <Plug>(GitGutterTextObjectInnerPending)
|
|
||||||
let &cpo=s:cpo_save
|
|
||||||
unlet s:cpo_save
|
|
||||||
setlocal keymap=
|
|
||||||
setlocal noarabic
|
|
||||||
setlocal autoindent
|
|
||||||
setlocal backupcopy=
|
|
||||||
setlocal balloonexpr=
|
|
||||||
setlocal nobinary
|
|
||||||
setlocal nobreakindent
|
|
||||||
setlocal breakindentopt=
|
|
||||||
setlocal bufhidden=
|
|
||||||
setlocal buflisted
|
|
||||||
setlocal buftype=
|
|
||||||
setlocal nocindent
|
|
||||||
setlocal cinkeys=0{,0},0),0],:,0#,!^F,o,O,e
|
|
||||||
setlocal cinoptions=
|
|
||||||
setlocal cinscopedecls=public,protected,private
|
|
||||||
setlocal cinwords=if,else,while,do,for,switch
|
|
||||||
setlocal colorcolumn=
|
|
||||||
setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
|
|
||||||
setlocal commentstring=//\ %s
|
|
||||||
setlocal complete=.,w,b,u,t,i
|
|
||||||
setlocal concealcursor=
|
|
||||||
setlocal conceallevel=0
|
|
||||||
setlocal completefunc=
|
|
||||||
setlocal nocopyindent
|
|
||||||
setlocal cryptmethod=
|
|
||||||
setlocal nocursorbind
|
|
||||||
setlocal nocursorcolumn
|
|
||||||
setlocal nocursorline
|
|
||||||
setlocal cursorlineopt=both
|
|
||||||
setlocal define=
|
|
||||||
setlocal dictionary=
|
|
||||||
setlocal nodiff
|
|
||||||
setlocal equalprg=
|
|
||||||
setlocal errorformat=%+A\ %#%f\ %#(%l\\,%c):\ %m,%C%m
|
|
||||||
setlocal noexpandtab
|
|
||||||
if &filetype != 'typescript'
|
|
||||||
setlocal filetype=typescript
|
|
||||||
endif
|
|
||||||
setlocal fillchars=
|
|
||||||
setlocal fixendofline
|
|
||||||
setlocal foldcolumn=0
|
|
||||||
setlocal foldenable
|
|
||||||
setlocal foldexpr=0
|
|
||||||
setlocal foldignore=#
|
|
||||||
setlocal foldlevel=0
|
|
||||||
setlocal foldmarker={{{,}}}
|
|
||||||
setlocal foldmethod=manual
|
|
||||||
setlocal foldminlines=1
|
|
||||||
setlocal foldnestmax=20
|
|
||||||
setlocal foldtext=foldtext()
|
|
||||||
setlocal formatexpr=
|
|
||||||
setlocal formatoptions=croql
|
|
||||||
setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
|
|
||||||
setlocal formatprg=
|
|
||||||
setlocal grepprg=
|
|
||||||
setlocal iminsert=0
|
|
||||||
setlocal imsearch=-1
|
|
||||||
setlocal include=
|
|
||||||
setlocal includeexpr=
|
|
||||||
setlocal indentexpr=GetTypescriptIndent()
|
|
||||||
setlocal indentkeys=0{,0},0),0],:,0#,!^F,o,O,e,0],0)
|
|
||||||
setlocal noinfercase
|
|
||||||
setlocal iskeyword=@,48-57,_,192-255,$
|
|
||||||
setlocal keywordprg=
|
|
||||||
setlocal nolinebreak
|
|
||||||
setlocal nolisp
|
|
||||||
setlocal lispoptions=
|
|
||||||
setlocal lispwords=
|
|
||||||
setlocal nolist
|
|
||||||
setlocal listchars=
|
|
||||||
setlocal makeencoding=
|
|
||||||
setlocal makeprg=tsc\ \ $*\ %
|
|
||||||
setlocal matchpairs=(:),{:},[:]
|
|
||||||
setlocal nomodeline
|
|
||||||
setlocal modifiable
|
|
||||||
setlocal nrformats=bin,octal,hex
|
|
||||||
set number
|
|
||||||
setlocal number
|
|
||||||
setlocal numberwidth=4
|
|
||||||
setlocal omnifunc=
|
|
||||||
setlocal path=
|
|
||||||
setlocal nopreserveindent
|
|
||||||
setlocal nopreviewwindow
|
|
||||||
setlocal quoteescape=\\
|
|
||||||
setlocal noreadonly
|
|
||||||
setlocal norelativenumber
|
|
||||||
setlocal norightleft
|
|
||||||
setlocal rightleftcmd=search
|
|
||||||
setlocal noscrollbind
|
|
||||||
setlocal scrolloff=-1
|
|
||||||
setlocal shiftwidth=4
|
|
||||||
setlocal noshortname
|
|
||||||
setlocal showbreak=
|
|
||||||
setlocal sidescrolloff=-1
|
|
||||||
set signcolumn=yes
|
|
||||||
setlocal signcolumn=yes
|
|
||||||
setlocal nosmartindent
|
|
||||||
setlocal nosmoothscroll
|
|
||||||
setlocal softtabstop=0
|
|
||||||
setlocal nospell
|
|
||||||
setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
|
|
||||||
setlocal spellfile=
|
|
||||||
setlocal spelllang=en
|
|
||||||
setlocal spelloptions=
|
|
||||||
setlocal statusline=
|
|
||||||
setlocal suffixesadd=.ts,.tsx
|
|
||||||
setlocal swapfile
|
|
||||||
setlocal synmaxcol=3000
|
|
||||||
if &syntax != 'typescript'
|
|
||||||
setlocal syntax=typescript
|
|
||||||
endif
|
|
||||||
setlocal tabstop=8
|
|
||||||
setlocal tagcase=
|
|
||||||
setlocal tagfunc=
|
|
||||||
setlocal tags=
|
|
||||||
setlocal termwinkey=
|
|
||||||
setlocal termwinscroll=10000
|
|
||||||
setlocal termwinsize=
|
|
||||||
setlocal textwidth=0
|
|
||||||
setlocal thesaurus=
|
|
||||||
setlocal thesaurusfunc=
|
|
||||||
setlocal noundofile
|
|
||||||
setlocal undolevels=-123456
|
|
||||||
setlocal varsofttabstop=
|
|
||||||
setlocal vartabstop=
|
|
||||||
setlocal virtualedit=
|
|
||||||
setlocal wincolor=
|
|
||||||
setlocal nowinfixheight
|
|
||||||
setlocal nowinfixwidth
|
|
||||||
setlocal wrap
|
|
||||||
setlocal wrapmargin=0
|
|
||||||
silent! normal! zE
|
|
||||||
let &fdl = &fdl
|
|
||||||
let s:l = 1 - ((0 * winheight(0) + 17) / 34)
|
|
||||||
if s:l < 1 | let s:l = 1 | endif
|
|
||||||
keepjumps exe s:l
|
|
||||||
normal! zt
|
|
||||||
keepjumps 1
|
|
||||||
normal! 0
|
normal! 0
|
||||||
|
wincmd w
|
||||||
|
argglobal
|
||||||
|
if bufexists(fnamemodify("src/Model/Global/storageModel.ts", ":p")) | buffer src/Model/Global/storageModel.ts | else | edit src/Model/Global/storageModel.ts | endif
|
||||||
|
balt src/Model/Utility/utility.ts
|
||||||
|
let s:cpo_save=&cpo
|
||||||
|
set cpo&vim
|
||||||
|
nmap <buffer> [c <Plug>(GitGutterPrevHunk)
|
||||||
|
nmap <buffer> \hp <Plug>(GitGutterPreviewHunk)
|
||||||
|
nmap <buffer> \hu <Plug>(GitGutterUndoHunk)
|
||||||
|
nmap <buffer> \hs <Plug>(GitGutterStageHunk)
|
||||||
|
xmap <buffer> \hs <Plug>(GitGutterStageHunk)
|
||||||
|
nmap <buffer> ]c <Plug>(GitGutterNextHunk)
|
||||||
|
xmap <buffer> ac <Plug>(GitGutterTextObjectOuterVisual)
|
||||||
|
omap <buffer> ac <Plug>(GitGutterTextObjectOuterPending)
|
||||||
|
xmap <buffer> ic <Plug>(GitGutterTextObjectInnerVisual)
|
||||||
|
omap <buffer> ic <Plug>(GitGutterTextObjectInnerPending)
|
||||||
|
let &cpo=s:cpo_save
|
||||||
|
unlet s:cpo_save
|
||||||
|
setlocal keymap=
|
||||||
|
setlocal noarabic
|
||||||
|
setlocal autoindent
|
||||||
|
setlocal backupcopy=
|
||||||
|
setlocal balloonexpr=
|
||||||
|
setlocal nobinary
|
||||||
|
setlocal nobreakindent
|
||||||
|
setlocal breakindentopt=
|
||||||
|
setlocal bufhidden=
|
||||||
|
setlocal buflisted
|
||||||
|
setlocal buftype=
|
||||||
|
setlocal nocindent
|
||||||
|
setlocal cinkeys=0{,0},0),0],:,0#,!^F,o,O,e
|
||||||
|
setlocal cinoptions=
|
||||||
|
setlocal cinscopedecls=public,protected,private
|
||||||
|
setlocal cinwords=if,else,while,do,for,switch
|
||||||
|
setlocal colorcolumn=
|
||||||
|
setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
|
||||||
|
setlocal commentstring=//\ %s
|
||||||
|
setlocal complete=.,w,b,u,t,i
|
||||||
|
setlocal concealcursor=
|
||||||
|
setlocal conceallevel=0
|
||||||
|
setlocal completefunc=
|
||||||
|
setlocal nocopyindent
|
||||||
|
setlocal cryptmethod=
|
||||||
|
setlocal nocursorbind
|
||||||
|
setlocal nocursorcolumn
|
||||||
|
setlocal nocursorline
|
||||||
|
setlocal cursorlineopt=both
|
||||||
|
setlocal define=
|
||||||
|
setlocal dictionary=
|
||||||
|
setlocal nodiff
|
||||||
|
setlocal equalprg=
|
||||||
|
setlocal errorformat=%+A\ %#%f\ %#(%l\\,%c):\ %m,%C%m
|
||||||
|
setlocal noexpandtab
|
||||||
|
if &filetype != 'typescript'
|
||||||
|
setlocal filetype=typescript
|
||||||
|
endif
|
||||||
|
setlocal fillchars=
|
||||||
|
setlocal fixendofline
|
||||||
|
setlocal foldcolumn=0
|
||||||
|
setlocal foldenable
|
||||||
|
setlocal foldexpr=0
|
||||||
|
setlocal foldignore=#
|
||||||
|
setlocal foldlevel=0
|
||||||
|
setlocal foldmarker={{{,}}}
|
||||||
|
setlocal foldmethod=manual
|
||||||
|
setlocal foldminlines=1
|
||||||
|
setlocal foldnestmax=20
|
||||||
|
setlocal foldtext=foldtext()
|
||||||
|
setlocal formatexpr=
|
||||||
|
setlocal formatoptions=croql
|
||||||
|
setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
|
||||||
|
setlocal formatprg=
|
||||||
|
setlocal grepprg=
|
||||||
|
setlocal iminsert=0
|
||||||
|
setlocal imsearch=-1
|
||||||
|
setlocal include=
|
||||||
|
setlocal includeexpr=
|
||||||
|
setlocal indentexpr=GetTypescriptIndent()
|
||||||
|
setlocal indentkeys=0{,0},0),0],:,0#,!^F,o,O,e,0],0)
|
||||||
|
setlocal noinfercase
|
||||||
|
setlocal iskeyword=@,48-57,_,192-255,$
|
||||||
|
setlocal keywordprg=
|
||||||
|
setlocal nolinebreak
|
||||||
|
setlocal nolisp
|
||||||
|
setlocal lispoptions=
|
||||||
|
setlocal lispwords=
|
||||||
|
setlocal nolist
|
||||||
|
setlocal listchars=
|
||||||
|
setlocal makeencoding=
|
||||||
|
setlocal makeprg=tsc\ \ $*\ %
|
||||||
|
setlocal matchpairs=(:),{:},[:]
|
||||||
|
setlocal nomodeline
|
||||||
|
setlocal modifiable
|
||||||
|
setlocal nrformats=bin,octal,hex
|
||||||
|
set number
|
||||||
|
setlocal number
|
||||||
|
setlocal numberwidth=4
|
||||||
|
setlocal omnifunc=
|
||||||
|
setlocal path=
|
||||||
|
setlocal nopreserveindent
|
||||||
|
setlocal nopreviewwindow
|
||||||
|
setlocal quoteescape=\\
|
||||||
|
setlocal noreadonly
|
||||||
|
setlocal norelativenumber
|
||||||
|
setlocal norightleft
|
||||||
|
setlocal rightleftcmd=search
|
||||||
|
setlocal noscrollbind
|
||||||
|
setlocal scrolloff=-1
|
||||||
|
setlocal shiftwidth=4
|
||||||
|
setlocal noshortname
|
||||||
|
setlocal showbreak=
|
||||||
|
setlocal sidescrolloff=-1
|
||||||
|
set signcolumn=yes
|
||||||
|
setlocal signcolumn=yes
|
||||||
|
setlocal nosmartindent
|
||||||
|
setlocal nosmoothscroll
|
||||||
|
setlocal softtabstop=0
|
||||||
|
setlocal nospell
|
||||||
|
setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
|
||||||
|
setlocal spellfile=
|
||||||
|
setlocal spelllang=en
|
||||||
|
setlocal spelloptions=
|
||||||
|
setlocal statusline=
|
||||||
|
setlocal suffixesadd=.ts,.tsx
|
||||||
|
setlocal swapfile
|
||||||
|
setlocal synmaxcol=3000
|
||||||
|
if &syntax != 'typescript'
|
||||||
|
setlocal syntax=typescript
|
||||||
|
endif
|
||||||
|
setlocal tabstop=8
|
||||||
|
setlocal tagcase=
|
||||||
|
setlocal tagfunc=
|
||||||
|
setlocal tags=
|
||||||
|
setlocal termwinkey=
|
||||||
|
setlocal termwinscroll=10000
|
||||||
|
setlocal termwinsize=
|
||||||
|
setlocal textwidth=0
|
||||||
|
setlocal thesaurus=
|
||||||
|
setlocal thesaurusfunc=
|
||||||
|
setlocal noundofile
|
||||||
|
setlocal undolevels=-123456
|
||||||
|
setlocal varsofttabstop=
|
||||||
|
setlocal vartabstop=
|
||||||
|
setlocal virtualedit=
|
||||||
|
setlocal wincolor=
|
||||||
|
setlocal nowinfixheight
|
||||||
|
setlocal nowinfixwidth
|
||||||
|
setlocal wrap
|
||||||
|
setlocal wrapmargin=0
|
||||||
|
silent! normal! zE
|
||||||
|
let &fdl = &fdl
|
||||||
|
let s:l = 220 - ((16 * winheight(0) + 15) / 31)
|
||||||
|
if s:l < 1 | let s:l = 1 | endif
|
||||||
|
keepjumps exe s:l
|
||||||
|
normal! zt
|
||||||
|
keepjumps 220
|
||||||
|
normal! 027|
|
||||||
|
wincmd w
|
||||||
|
2wincmd w
|
||||||
|
exe 'vert 1resize ' . ((&columns * 136 + 137) / 274)
|
||||||
|
exe 'vert 2resize ' . ((&columns * 137 + 137) / 274)
|
||||||
tabnext 2
|
tabnext 2
|
||||||
set stal=1
|
set stal=1
|
||||||
if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0
|
if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0
|
||||||
@@ -1385,7 +1033,6 @@ if filereadable(s:sx)
|
|||||||
exe "source " . fnameescape(s:sx)
|
exe "source " . fnameescape(s:sx)
|
||||||
endif
|
endif
|
||||||
let &g:so = s:so_save | let &g:siso = s:siso_save
|
let &g:so = s:so_save | let &g:siso = s:siso_save
|
||||||
nohlsearch
|
|
||||||
doautoall SessionLoadPost
|
doautoall SessionLoadPost
|
||||||
unlet SessionLoad
|
unlet SessionLoad
|
||||||
" vim: set ft=vim :
|
" vim: set ft=vim :
|
||||||
|
|||||||
+11
-10
@@ -166,7 +166,7 @@ export default class ChatModel {
|
|||||||
|
|
||||||
// message
|
// message
|
||||||
if (chatMessage.body != "") {
|
if (chatMessage.body != "") {
|
||||||
const messagePath: string[] = this.getMessagePath(chatMessage.id);
|
const messagePath: string[] = this.getMessagePath(chatMessage.fileId);
|
||||||
this.storageModel.writeStringifiable(messagePath, chatMessage);
|
this.storageModel.writeStringifiable(messagePath, chatMessage);
|
||||||
this.chatMessageHandlerManager.trigger(chatMessage);
|
this.chatMessageHandlerManager.trigger(chatMessage);
|
||||||
}
|
}
|
||||||
@@ -210,7 +210,7 @@ export default class ChatModel {
|
|||||||
|
|
||||||
this.addMessage(chatMessage);
|
this.addMessage(chatMessage);
|
||||||
this.connectionModel.sendMessageOrStore(chatMessage);
|
this.connectionModel.sendMessageOrStore(chatMessage);
|
||||||
return chatMessage.id;
|
return chatMessage.fileId;
|
||||||
};
|
};
|
||||||
|
|
||||||
readonly decryptMessage = async (
|
readonly decryptMessage = async (
|
||||||
@@ -397,10 +397,10 @@ export default class ChatModel {
|
|||||||
inlineReplyId?: string,
|
inlineReplyId?: string,
|
||||||
fileContent?: FileContent<string>,
|
fileContent?: FileContent<string>,
|
||||||
): Promise<ChatMessage> => {
|
): Promise<ChatMessage> => {
|
||||||
const chatMessage: ChatMessage = {
|
const messageFileContent = FileModel.createFileContent(v4(), "message");
|
||||||
dataVersion: DATA_VERSION,
|
|
||||||
|
|
||||||
id: v4(),
|
const chatMessage: ChatMessage = {
|
||||||
|
...messageFileContent,
|
||||||
|
|
||||||
channel,
|
channel,
|
||||||
senderName,
|
senderName,
|
||||||
@@ -488,9 +488,7 @@ export enum ChatMessageStatuses {
|
|||||||
Other = "other",
|
Other = "other",
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ChatMessage extends ValidObject {
|
export interface ChatMessage extends FileContent<"message"> {
|
||||||
readonly id: string;
|
|
||||||
|
|
||||||
readonly channel: string;
|
readonly channel: string;
|
||||||
readonly senderId: string;
|
readonly senderId: string;
|
||||||
readonly senderName: string;
|
readonly senderName: string;
|
||||||
@@ -504,7 +502,7 @@ export interface ChatMessage extends ValidObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface ChatMessageReaction
|
export interface ChatMessageReaction
|
||||||
extends ValidObject, FileContent<"reaction"> {
|
extends FileContent<"reaction"> {
|
||||||
readonly messageId: string;
|
readonly messageId: string;
|
||||||
readonly senderId: string;
|
readonly senderId: string;
|
||||||
readonly senderName: string;
|
readonly senderName: string;
|
||||||
@@ -534,7 +532,10 @@ export const ChatInfoReference: ChatInfoFileContent = {
|
|||||||
export const ChatMessageReference: ChatMessage = {
|
export const ChatMessageReference: ChatMessage = {
|
||||||
dataVersion: DATA_VERSION,
|
dataVersion: DATA_VERSION,
|
||||||
|
|
||||||
id: "",
|
fileId: "",
|
||||||
|
fileContentId: "",
|
||||||
|
creationDate: "",
|
||||||
|
type: "message",
|
||||||
|
|
||||||
channel: "",
|
channel: "",
|
||||||
senderName: "",
|
senderName: "",
|
||||||
|
|||||||
@@ -149,12 +149,12 @@ export default class ConnectionModel {
|
|||||||
};
|
};
|
||||||
|
|
||||||
readonly addToOutbox = (chatMessage: ChatMessage): void => {
|
readonly addToOutbox = (chatMessage: ChatMessage): void => {
|
||||||
const messagePath: string[] = [...this.getOutboxPath(), chatMessage.id];
|
const messagePath: string[] = [...this.getOutboxPath(), chatMessage.fileId];
|
||||||
this.storageModel.writeStringifiable(messagePath, chatMessage);
|
this.storageModel.writeStringifiable(messagePath, chatMessage);
|
||||||
};
|
};
|
||||||
|
|
||||||
readonly removeFromOutbox = (chatMessage: ChatMessage): void => {
|
readonly removeFromOutbox = (chatMessage: ChatMessage): void => {
|
||||||
const messagePath: string[] = [...this.getOutboxPath(), chatMessage.id];
|
const messagePath: string[] = [...this.getOutboxPath(), chatMessage.fileId];
|
||||||
this.storageModel.remove(messagePath);
|
this.storageModel.remove(messagePath);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -104,6 +104,7 @@ export default class FileTransferModel {
|
|||||||
|
|
||||||
readonly handleDecryptedFile = (data: string): void => {
|
readonly handleDecryptedFile = (data: string): void => {
|
||||||
const parsed: any = parse(data);
|
const parsed: any = parse(data);
|
||||||
|
|
||||||
const isFileData: boolean = checkMatchesObjectStructure(
|
const isFileData: boolean = checkMatchesObjectStructure(
|
||||||
parsed,
|
parsed,
|
||||||
FileDataReference,
|
FileDataReference,
|
||||||
@@ -111,6 +112,7 @@ export default class FileTransferModel {
|
|||||||
if (isFileData == false) throw "not file data";
|
if (isFileData == false) throw "not file data";
|
||||||
|
|
||||||
const fileData: FileData = parsed;
|
const fileData: FileData = parsed;
|
||||||
|
|
||||||
this.storageModel.write(fileData.path, fileData.body);
|
this.storageModel.write(fileData.path, fileData.body);
|
||||||
|
|
||||||
const pathString: string = StorageModel.pathComponentsToString(
|
const pathString: string = StorageModel.pathComponentsToString(
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import {
|
import {
|
||||||
bytesToMB,
|
bytesToMB,
|
||||||
localeCompare,
|
localeCompare,
|
||||||
|
parse,
|
||||||
parseValidObject,
|
parseValidObject,
|
||||||
stringify,
|
stringify,
|
||||||
} from "../Utility/utility";
|
} from "../Utility/utility";
|
||||||
@@ -214,46 +215,61 @@ export default class StorageModel {
|
|||||||
return stringify(this.storageEntryTree);
|
return stringify(this.storageEntryTree);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// upgrade
|
||||||
|
readonly upgrade = (): void => {
|
||||||
|
const v2To2610 = () => {
|
||||||
|
this.recurse(["v2"], (path) => {
|
||||||
|
const body = this.read(path);
|
||||||
|
if (!body) return;
|
||||||
|
const parsed = parse(body);
|
||||||
|
console.log(parsed.type);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
v2To2610();
|
||||||
|
}
|
||||||
|
|
||||||
// init
|
// init
|
||||||
constructor() {
|
constructor() {
|
||||||
this.initializeTree();
|
this.initializeTree();
|
||||||
|
this.upgrade();
|
||||||
}
|
}
|
||||||
|
|
||||||
// utility
|
// utility
|
||||||
static getFileName = (pathComponents: string[]): string => {
|
static getFileName = (pathComponents: string[]): string => {
|
||||||
return pathComponents[pathComponents.length - 1] || "\\";
|
return pathComponents[pathComponents.length - 1] || "\\";
|
||||||
};
|
};
|
||||||
|
|
||||||
static getFileNameFromString = (pathString: string): string => {
|
static getFileNameFromString = (pathString: string): string => {
|
||||||
const pathComponents: string[] =
|
const pathComponents: string[] =
|
||||||
this.stringToPathComponents(pathString);
|
this.stringToPathComponents(pathString);
|
||||||
return pathComponents[pathComponents.length - 1] || "\\";
|
return pathComponents[pathComponents.length - 1] || "\\";
|
||||||
};
|
};
|
||||||
|
|
||||||
static pathComponentsToString = (...pathComponents: string[]): string => {
|
static pathComponentsToString = (...pathComponents: string[]): string => {
|
||||||
return pathComponents
|
return pathComponents
|
||||||
.filter((x) => x != "")
|
.filter((x) => x != "")
|
||||||
.join(PATH_COMPONENT_SEPARATOR);
|
.join(PATH_COMPONENT_SEPARATOR);
|
||||||
};
|
};
|
||||||
|
|
||||||
static stringToPathComponents = (string: string): string[] => {
|
static stringToPathComponents = (string: string): string[] => {
|
||||||
return string.split(PATH_COMPONENT_SEPARATOR).filter((x) => x != "");
|
return string.split(PATH_COMPONENT_SEPARATOR).filter((x) => x != "");
|
||||||
};
|
};
|
||||||
|
|
||||||
static join = (...items: string[]): string => {
|
static join = (...items: string[]): string => {
|
||||||
let allComponents: string[] = [];
|
let allComponents: string[] = [];
|
||||||
for (const item of items) {
|
for (const item of items) {
|
||||||
const parts = this.stringToPathComponents(item);
|
const parts = this.stringToPathComponents(item);
|
||||||
allComponents.push(...parts);
|
allComponents.push(...parts);
|
||||||
}
|
}
|
||||||
return StorageModel.pathComponentsToString(...allComponents);
|
return StorageModel.pathComponentsToString(...allComponents);
|
||||||
};
|
};
|
||||||
|
|
||||||
static getPath(
|
static getPath(
|
||||||
locationName: StorageModelSubPaths,
|
locationName: StorageModelSubPaths,
|
||||||
filePath: string[],
|
filePath: string[],
|
||||||
): string[] {
|
): string[] {
|
||||||
return [DATA_VERSION, locationName, ...filePath];
|
return [DATA_VERSION, locationName, ...filePath];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -264,52 +280,52 @@ export type StorageEntry = { [key: string]: StorageEntry };
|
|||||||
export enum StorageModelSubPaths {
|
export enum StorageModelSubPaths {
|
||||||
Chat = "chat",
|
Chat = "chat",
|
||||||
|
|
||||||
ConnectionModel = "connection",
|
ConnectionModel = "connection",
|
||||||
NotificationModel = "notifications",
|
NotificationModel = "notifications",
|
||||||
SettingsModel = "settings",
|
SettingsModel = "settings",
|
||||||
ContactsModel = "contacts",
|
ContactsModel = "contacts",
|
||||||
}
|
}
|
||||||
|
|
||||||
export const filePaths = {
|
export const filePaths = {
|
||||||
connectionModel: {
|
connectionModel: {
|
||||||
socketAddress: ["socket-address"],
|
socketAddress: ["socket-address"],
|
||||||
reconnectAddress: ["reconnect-address"],
|
reconnectAddress: ["reconnect-address"],
|
||||||
outbox: ["outbox"],
|
outbox: ["outbox"],
|
||||||
mailboxes: ["mailboxes"],
|
mailboxes: ["mailboxes"],
|
||||||
|
|
||||||
previousAddresses: ["previous-addresses"],
|
previousAddresses: ["previous-addresses"],
|
||||||
},
|
},
|
||||||
|
|
||||||
chat: {
|
chat: {
|
||||||
base: [],
|
base: [],
|
||||||
chatBase: (id: string) => [id],
|
chatBase: (id: string) => [id],
|
||||||
info: (id: string) => [...filePaths.chat.chatBase(id), "info"],
|
info: (id: string) => [...filePaths.chat.chatBase(id), "info"],
|
||||||
color: (id: string) => [...filePaths.chat.chatBase(id), "color"],
|
color: (id: string) => [...filePaths.chat.chatBase(id), "color"],
|
||||||
messages: (id: string) => [...filePaths.chat.chatBase(id), "messages"],
|
messages: (id: string) => [...filePaths.chat.chatBase(id), "messages"],
|
||||||
reactions: (id: string) => [
|
reactions: (id: string) => [
|
||||||
...filePaths.chat.chatBase(id),
|
...filePaths.chat.chatBase(id),
|
||||||
"reactions",
|
"reactions",
|
||||||
],
|
],
|
||||||
previousFilter: (id: string) => [
|
previousFilter: (id: string) => [
|
||||||
...filePaths.chat.chatBase(id),
|
...filePaths.chat.chatBase(id),
|
||||||
"previous-filter",
|
"previous-filter",
|
||||||
],
|
],
|
||||||
lastUsedPage: (id: string) => [
|
lastUsedPage: (id: string) => [
|
||||||
...filePaths.chat.chatBase(id),
|
...filePaths.chat.chatBase(id),
|
||||||
"last-used-page",
|
"last-used-page",
|
||||||
],
|
],
|
||||||
files: (id: string) => [...filePaths.chat.chatBase(id), "files"],
|
files: (id: string) => [...filePaths.chat.chatBase(id), "files"],
|
||||||
},
|
},
|
||||||
|
|
||||||
notificationModel: {
|
notificationModel: {
|
||||||
base: [],
|
base: [],
|
||||||
},
|
},
|
||||||
|
|
||||||
settingsModel: {
|
settingsModel: {
|
||||||
username: ["user-name"],
|
username: ["user-name"],
|
||||||
userid: ["user-id"],
|
userid: ["user-id"],
|
||||||
firstDayOfWeek: ["first-day-of-week"],
|
firstDayOfWeek: ["first-day-of-week"],
|
||||||
language: ["language"],
|
language: ["language"],
|
||||||
theme: ["theme"],
|
theme: ["theme"],
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ export function InlineReply(chatMessageViewModel: ChatMessageViewModel) {
|
|||||||
if (reply == undefined) return <div></div>;
|
if (reply == undefined) return <div></div>;
|
||||||
|
|
||||||
const scroll = () => {
|
const scroll = () => {
|
||||||
ViewController.scrollToView(reply.chatMessage.id);
|
ViewController.scrollToView(reply.chatMessage.fileId);
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -175,7 +175,7 @@ export default class ChatMessageViewModel {
|
|||||||
|
|
||||||
sendReaction = (content: ReactionSymbols, isDeleting: boolean): void => {
|
sendReaction = (content: ReactionSymbols, isDeleting: boolean): void => {
|
||||||
this.messagePageViewModel.sendReaction(
|
this.messagePageViewModel.sendReaction(
|
||||||
this.chatMessage.id,
|
this.chatMessage.fileId,
|
||||||
content,
|
content,
|
||||||
isDeleting,
|
isDeleting,
|
||||||
);
|
);
|
||||||
@@ -194,7 +194,7 @@ export default class ChatMessageViewModel {
|
|||||||
this.messagePageViewModel.chatMessageViewModels.value.get(
|
this.messagePageViewModel.chatMessageViewModels.value.get(
|
||||||
this.chatMessage.inlineReplyId,
|
this.chatMessage.inlineReplyId,
|
||||||
);
|
);
|
||||||
this.inlineReply?.replies.set(this.chatMessage.id, this);
|
this.inlineReply?.replies.set(this.chatMessage.fileId, this);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ export default class NotificationViewModel {
|
|||||||
|
|
||||||
// main
|
// main
|
||||||
showNotification = (message: ChatMessage): void => {
|
showNotification = (message: ChatMessage): void => {
|
||||||
if (this.seenMessageIds.has(message.id)) return;
|
if (this.seenMessageIds.has(message.fileId)) return;
|
||||||
if (this.chatListViewModel.selectedChat.value == undefined) return;
|
if (this.chatListViewModel.selectedChat.value == undefined) return;
|
||||||
|
|
||||||
const notification: Notification = this.createNotification(message);
|
const notification: Notification = this.createNotification(message);
|
||||||
@@ -84,7 +84,7 @@ export default class NotificationViewModel {
|
|||||||
const fullChannel = ChatModel.splitChannel(message.channel)[0];
|
const fullChannel = ChatModel.splitChannel(message.channel)[0];
|
||||||
const chat = this.chatListViewModel.getDisplayName(fullChannel);
|
const chat = this.chatListViewModel.getDisplayName(fullChannel);
|
||||||
return {
|
return {
|
||||||
messageId: message.id,
|
messageId: message.fileId,
|
||||||
chat,
|
chat,
|
||||||
fullChannel,
|
fullChannel,
|
||||||
sender: message.senderName,
|
sender: message.senderName,
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ export default class MessagePageViewModel extends Context {
|
|||||||
sendMessageFromBody = (body: string): Promise<string | false> => {
|
sendMessageFromBody = (body: string): Promise<string | false> => {
|
||||||
let replyId: string | undefined = undefined;
|
let replyId: string | undefined = undefined;
|
||||||
if (this.replyingMessage.value) {
|
if (this.replyingMessage.value) {
|
||||||
replyId = this.replyingMessage.value.chatMessage.id;
|
replyId = this.replyingMessage.value.chatMessage.fileId;
|
||||||
}
|
}
|
||||||
const id = this.chatViewModel.chatModel.sendMessage(body, replyId);
|
const id = this.chatViewModel.chatModel.sendMessage(body, replyId);
|
||||||
|
|
||||||
@@ -118,13 +118,13 @@ export default class MessagePageViewModel extends Context {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const existingChatMessageViewModel: ChatMessageViewModel | undefined =
|
const existingChatMessageViewModel: ChatMessageViewModel | undefined =
|
||||||
this.chatMessageViewModels.value.get(chatMessage.id);
|
this.chatMessageViewModels.value.get(chatMessage.fileId);
|
||||||
if (existingChatMessageViewModel != undefined) {
|
if (existingChatMessageViewModel != undefined) {
|
||||||
existingChatMessageViewModel.body.value = chatMessage.body;
|
existingChatMessageViewModel.body.value = chatMessage.body;
|
||||||
existingChatMessageViewModel.status.value = chatMessage.status;
|
existingChatMessageViewModel.status.value = chatMessage.status;
|
||||||
} else {
|
} else {
|
||||||
this.chatMessageViewModels.set(
|
this.chatMessageViewModels.set(
|
||||||
chatMessage.id,
|
chatMessage.fileId,
|
||||||
chatMessageViewModel,
|
chatMessageViewModel,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user