README.md (3069B)
1 # Sort Imports for [D](https://dlang.org/) 2 3 `sortimport-d` can sort your dozens of `import`'s in a `.d` file (no matter where) 4 5 ## Installation 6 7 ### Prerequisite 8 9 - [`dub`](https://dub.pm/) 10 11 ### Building from HEAD 12 13 Get the repository with `git` and compile everything with `dub` 14 ```bash 15 $ git clone https://github.com/friedelschoen/importsort-d 16 $ cd importsort-d 17 $ dub build 18 ``` 19 20 If everything went fine, there should be a binary at `bin/importsort-d`. 21 22 Copy this into a directory included in `$PATH` (`/usr/bin` for example) to make this command work globally. 23 24 ```bash 25 $ sudo cp bin/importsort-d /usr/bin/ 26 ``` 27 28 or add this into your `.bashrc`, `.zshrc`, etc. 29 ```bash 30 export PATH=$PATH:"<path/to/importsort-d>/bin/" # on bash or zsh 31 fish_add_path "<path/to/importsort-d>/bin/" # on fish-shell 32 ``` 33 34 ### Building with DUB 35 36 ```bash 37 $ dub fetch importsort-d 38 $ dub run importsort-d -- --help 39 ``` 40 41 This won't install the command globally, you always have to run `dub run importsort-d <args>` 42 43 ## Usage 44 45 see 46 ```bash 47 $ importsort-d --help 48 $ dub run importsort-d -- --help 49 ``` 50 51 ## Documentation 52 53 Look at the documentation at [`dpldocs.info`](https://importsort-d.dpldocs.info/), if you want to use this project in code. 54 55 ## FAQ 56 57 ### How to add `importsort-d` to Visual Studio Code? 58 > There's a plugin called [Run on Save](https://marketplace.visualstudio.com/items?itemName=emeraldwalk.RunOnSave). You can install it and set `importsort-d` as an onSave-hook: 59 ```json 60 ... 61 "emeraldwalk.runonsave": { 62 "commands": [ 63 { 64 "cmd": "importsort-d --inplace ${file}", 65 "match": "\\.d$" 66 } 67 ] 68 }, 69 ... 70 ``` 71 72 ### How to add `importsort-d` to VIM/NeoVIM? 73 > Just add this to your `.vimrc` or `init.vim` 74 ```vim 75 :autocmd BufWritePost * silent !importsort-d --inplace <afile> 76 ``` 77 78 ### Are cats cool? 79 > Yes 80 81 ## ToDo's 82 83 - [x] recursive searching (`v0.2.0`) 84 - [x] merge imports (`v0.3.0`) 85 - [ ] watch-mode (struggling with save-timings - can clear files) 86 - you can add importsort-d into your onSave-hooks 87 - [ ] support multiple imports in one line (demilited by `;`) 88 - [ ] stripping unused imports (maybe) 89 90 > you got some ideas? Issue them! 91 92 ## Changelog 93 94 ### `v0.1.0` 95 - the very first version 96 - not a lot is implemented 97 98 ### `v0.2.0` 99 - added `--recursive` 100 - option `--keep` becomes disabling formatting 101 - option `--inline` don't copy the original but creates a `*.new` and renames it afterwards 102 - option `--original` becomes `--binding` and sorts by original by default 103 - refactoring code 104 105 ### `v0.3.0` 106 - added `--merge` 107 108 ### `v0.3.1` 109 - added documentation for contributers (or people who really want to see my code) 110 111 ### `v0.3.2` 112 - new argument-parsing 113 - added `--ignore-case` (_pull-request #2_) 114 - already sorted files won't be resorted and added `--force` (_issue #5_) 115 - multiple `import` in one line will be split up in multiple lines 116 - `--inline` is renamed to `--inplace` 117 118 ## License 119 120 This whole project is licensed under the beautiful terms of the `zlib-license`. 121 122 Further information [here](LICENSE). 123 124 > made with love and a lot of cat memes