diff --git a/README.md b/README.md
index 5474f8e..18871f1 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,6 @@ The development is supported by
- [Introduction](#introduction)
- [Install](#install)
- [Requirements](#requirements)
- - [Basic installation](#basic-installation)
- [Config example](#config-example)
@@ -39,37 +38,6 @@ Dpp.vim requires both Deno and denops.vim.
-
-
-### Basic installation
-
-You can install dpp.vim by your vimrc/init.vim.
-
-```vim
-let $CACHE = expand('~/.cache')
-if !($CACHE->isdirectory())
- call mkdir($CACHE, 'p')
-endif
-
-for s:plugin in [
- \ 'Shougo/dpp.vim',
- \ 'denops/denops.vim',
- \ ]->filter({ _, val ->
- \ &runtimepath !~# '/' .. val->fnamemodify(':t') })
- " Search from current directory
- let s:dir = s:plugin->fnamemodify(':t')->fnamemodify(':p')
- if !(s:dir->isdirectory())
- " Search from $CACHE directory
- let s:dir = $CACHE .. '/dpp/repos/github.com/' .. s:plugin
- if !(s:dir->isdirectory())
- execute '!git clone https://github.com/' .. s:plugin s:dir
- endif
- endif
-
- if s:plugin->fnamemodify(':t') ==# 'dpp.vim'
- execute 'set runtimepath^='
- \ .. s:dir->fnamemodify(':p')->substitute('[/\\]$', '', '')
- endif
-endfor
-```
### Config example
diff --git a/denops/dpp/dpp.ts b/denops/dpp/dpp.ts
index cce0eaf..ddd3654 100644
--- a/denops/dpp/dpp.ts
+++ b/denops/dpp/dpp.ts
@@ -251,6 +251,10 @@ export class Dpp {
`let &runtimepath = '${newRuntimepath}'`,
];
+ if (!configReturn.ftplugins) {
+ configReturn.ftplugins = {};
+ }
+
// hooksFiles
if (configReturn.hooksFiles) {
for (
@@ -268,10 +272,6 @@ export class Dpp {
// Use ftplugin only
if (parsedHooksFile.ftplugin && is.Record(parsedHooksFile.ftplugin)) {
- if (!configReturn.ftplugins) {
- configReturn.ftplugins = {};
- }
-
// Merge ftplugins
for (const filetype of Object.keys(parsedHooksFile.ftplugin)) {
if (configReturn.ftplugins[filetype]) {
@@ -319,6 +319,19 @@ export class Dpp {
if (plugin.hook_add) {
stateLines.push(plugin.hook_add);
}
+
+ // Merge ftplugins
+ if (plugin.ftplugin) {
+ for (const filetype of Object.keys(plugin.ftplugin)) {
+ if (configReturn.ftplugins[filetype]) {
+ configReturn.ftplugins[filetype] += `\n${
+ plugin.ftplugin[filetype]
+ }`;
+ } else {
+ configReturn.ftplugins[filetype] = plugin.ftplugin[filetype];
+ }
+ }
+ }
}
const inlineVimrcs = await Promise.all(options.inlineVimrcs.map(
@@ -370,7 +383,7 @@ export class Dpp {
"dpp#util#_generate_ftplugin",
dppRuntimepath,
configReturn.ftplugins,
- ) as Record;
+ ) as Record;
for (const path of Object.keys(generatedFtplugins)) {
const parent = dirname(path);
@@ -378,7 +391,7 @@ export class Dpp {
await Deno.mkdir(parent, { recursive: true });
}
- await Deno.writeTextFile(path, generatedFtplugins[path]);
+ await Deno.writeTextFile(path, generatedFtplugins[path].join("\n"));
}
}