Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/idanarye/vim-dutyl
Coordinate D tools to work together for you
https://github.com/idanarye/vim-dutyl
Last synced: 18 days ago
JSON representation
Coordinate D tools to work together for you
- Host: GitHub
- URL: https://github.com/idanarye/vim-dutyl
- Owner: idanarye
- Created: 2014-08-13T11:38:19.000Z (over 10 years ago)
- Default Branch: develop
- Last Pushed: 2020-04-02T09:39:52.000Z (over 4 years ago)
- Last Synced: 2024-10-10T20:13:39.379Z (about 1 month ago)
- Language: Vim script
- Homepage: http://www.vim.org/scripts/script.php?script_id=5003
- Size: 92.8 KB
- Stars: 79
- Watchers: 7
- Forks: 13
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
- awesome-d - Dutyl - Vim plugin that integrates various D development tools (IDEs & Editors / Bare metal / kernel development)
README
INTRODUCTION
============Dutyl operates various Dlang tools to help you program D in Vim. Instead of
having a separate plugin for each tool, Dutyl can use multiple plugins and
use them together - for example, use DUB to get a list of import paths the
project is using and pass that list to DCD to get autocompleting for symbols
that come from libraries. Dutyl has a module(/plugin) system that allows tools
to back up each other - so for example if a project doesn't use DUB, Dutyl can
back up reading the import paths from a static configuration file.Currently supported features:
* Getting the imports list from DUB or from a configuration file
* Autocompletion using DCD
* Finding DDoc using DCD
* Finding declarations using DCD or Dscanner
* Syntax and style checks using Dscanner
* Updating the tags file using Dscanner
* Recognizing the project's root and running commands there
* Formatting code using dfmt
* Indenting using dfmtREQUIREMENTS
============Dutyl requires the tools that it uses. If you want it to use DUB to get info
about the project, you need [DUB](http://code.dlang.org/download). If you want
it to use DCD for autocompletion, you need
[DCD](https://github.com/Hackerpilot/DCD)(currently tested with version 0.4.0).
If you want it to use Dscanner, you need
[Dscanner](https://github.com/Hackerpilot/Dscanner). If you want it to use
dfmt, you need [dfmt](https://github.com/Hackerpilot/dfmt).NOTE ABOUT DCD
==============DCD functionality won't work without a `dcd-server` running. Dutyl does not run
`dcd-server` automatically, but it does offer several commands to ease that
task:- `:DUDCDstartServer` to start DCD
- `:DUDCDstopServer` to stop DCD
- `:DUDCDrestartServer` to restart DCD
- `:DUDCDclearCache` to clear the DCD cacheCONFIGURATION
=============Use `g:dutyl_stdImportPaths` to specify the standard library import paths.
```vim
let g:dutyl_stdImportPaths=['/usr/include/dlang/dmd']
```
You must either set `g:dutyl_stdImportPaths` or configure these paths in DCD
itself, or else DCD won't be able to recognize standard library symbols.If you want to never add the closing paren in calltips completions, set
`g:dutyl_neverAddClosingParen` to 1:
```vim
let g:dutyl_neverAddClosingParen=1
```Dutyl will assume that tools are in the system's PATH. If they are not, you'll
have to supply the path for them using `dutyl#register#tool` like so:
```vim
call dutyl#register#tool('dcd-client','/path/to/DCD/dcd-client')
call dutyl#register#tool('dcd-server','/path/to/DCD/dcd-server')
```
**Note**: If you are using a plugin manager(like Pathogen or Vundle), make sure
that you only call `dutyl#register#tool` after you run the plugin manager's
command for updating the runtime path(`pathogen#infect` in case of Pathogen,
`vundle#end` in case of Vundle, or whatever the command is for whatever the
tool you are using).Under Windows, Dutyl uses [VimProc](https://github.com/Shougo/vimproc.vim) when
available to prevent opening a console windows every time a command needs to be
ran. To prevent using VimProc, set `g:dutyl_dontUseVimProc` to 1:
```vim
let g:dutyl_dontUseVimProc=1
```Dutyl will use a local file named "tags" for tags. If you want to everride
this, set `g:dutyl_tagsFileName` to the name of the new tags file:
```vim
let g:dutyl_tagsFileName='newnamefortagsfile'
```
Note that the new tags file name will still have to be in `tags` in order
for Vim to recognize it.If dfmt is detected in your path(or if you set it's path via
`dutyl#register#tool`), Dutyl will automatically set `formatexpr` and
`indentexpr` when you enter a D file. To disable this, set
`g:dutyl_dontHandleFormat` and/or `g:dutyl_dontHandleIndent` to 1:
```vim
let g:dutyl_dontHandleFormat = 1
let g:dutyl_dontHandleIndent = 1
```## Contributing
Please see [CONTRIBUTING.md](CONTRIBUTING.md).