Skip to content

Commit

Permalink
Fix ftplugins
Browse files Browse the repository at this point in the history
  • Loading branch information
Shougo committed Oct 24, 2023
1 parent 58b40cc commit 6671668
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 38 deletions.
32 changes: 0 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ The development is supported by
- [Introduction](#introduction)
- [Install](#install)
- [Requirements](#requirements)
- [Basic installation](#basic-installation)
- [Config example](#config-example)

<!-- vim-markdown-toc -->
Expand All @@ -39,37 +38,6 @@ Dpp.vim requires both Deno and denops.vim.
- <https://deno.land/>
- <https://github.com/vim-denops/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

Expand Down
25 changes: 19 additions & 6 deletions denops/dpp/dpp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,10 @@ export class Dpp {
`let &runtimepath = '${newRuntimepath}'`,
];

if (!configReturn.ftplugins) {
configReturn.ftplugins = {};
}

// hooksFiles
if (configReturn.hooksFiles) {
for (
Expand All @@ -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]) {
Expand Down Expand Up @@ -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(
Expand Down Expand Up @@ -370,15 +383,15 @@ export class Dpp {
"dpp#util#_generate_ftplugin",
dppRuntimepath,
configReturn.ftplugins,
) as Record<string, string>;
) as Record<string, string[]>;

for (const path of Object.keys(generatedFtplugins)) {
const parent = dirname(path);
if (!await isDirectory(parent)) {
await Deno.mkdir(parent, { recursive: true });
}

await Deno.writeTextFile(path, generatedFtplugins[path]);
await Deno.writeTextFile(path, generatedFtplugins[path].join("\n"));
}
}

Expand Down

0 comments on commit 6671668

Please sign in to comment.