h1mesuke / vim-alignta Goto Github PK
View Code? Open in Web Editor NEWAlign Them All!
Align Them All!
要望です。
g:alignta_default_options
などは、バッファローカルな設定ができると filetype 毎にデフォルト値が設定できて便利かと思います。
<>>>>>>>>>>>
みたいな指定をしなくていいようにしたい。
最初、構文解析なしでいけるような書式を考えたが、入れ子になった括弧が使えたりした方が
((<|)3(>|2)+
こんな指定ができていいかなと思い始めた。
(
, )
, +
を組み合わせた、正規表現の繰り返し指定に近いイメージ
数字が繰り返し回数で
+
はマッチが続く限りの意味、最上位でのみ使える。
入れ子になった括弧があるので、構文解析が必要だが、文法はシンプルだし、ソース文字列も数十文字
といったオーダーなので、Vim script でやれると思う。
ただ、繰り返し回数の数字とマージン指定の数字とが見分けられなくなるので、fld-align の直後に
そのまま連続してマージン指定を書く書式は使えなくなる。
が、現状でもマージン指定はそれだけで記述できるし、要は fld-align とマージン指定との間に空白を
もうければいいだけなので、大きな問題にはならないと思われる。
ユーザーが整列に指定する引数とオプションの組み合わせはそう多くないと思われるので、
過去に使用した整列オプションと引数を履歴として記録して、後から呼び出せるようにしておけば便利ではないか。
既に unite-alignta から事前に登録した整列オプション、引数を呼び出すことができるので、
そこにうまく統合できれば。
はやく書けw
@: もあるし、コマンドラインの履歴もあるし、unite-history もあるしってことでなくても困らないような気がするが、
履歴機能の一部として実現できてしまう機能
問題は機能の呼び出し方
当初、引数なしで :Alignta コマンドを呼び出した場合に前回の整列を繰り返すようにしようと考えたが、
その場合引数として default_arguments が使われるという現在の仕様がダメになるということで、その案はぽしゃった。
単に履歴の中から最近のものを選ぶだけのことにするか、それともなんらかのショートカットを用意するか。
exists(':cmdname')
は曖昧にマッチするため、すでに定義されている :Alignta
に反応してしまい :Align
コマンドは常に定義されません。
exists(':Align') != 2
とする必要があります。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.