-
Notifications
You must be signed in to change notification settings - Fork 163
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
5ch: SetViewTop() に対応する Getメソッドが欲しい #1388
Comments
ああ、これ見ました。 「褒めて下さい」に「よかろう」とコメントしかけて放置してました。 Setコマンドの成否を知る方法がない件については #1301 の実現に必要なので、対応はそのうち入れたいと思っています。 現状、失敗を恐れずレビューに参加できるメンバーが絶望的に不足しているので、具体的にどうしたいか決まっているならPRを出してもらった方が早いと思います。 |
PRを出してもらったほうが早い、といいつつ、ここを見る人の9割にとって「無理。」だと思うので少し解説します。 マクロ関数の追加は、とくに難しい作業ではありません。 GetViewTopを作るには、SetViewTopの実装を真似すればよいです。 sakura/sakura_core/macro/CSMacroMgr.cpp Lines 405 to 406 in 64427bb
先頭部分をみれば定義は sakura/sakura_core/macro/CSMacroMgr.cpp Line 43 in 64427bb
sakura/sakura_core/macro/CSMacroMgr.h Lines 61 to 67 in 64427bb
ここで、SetViewTopには戻り値がないことに気付くと思うので、別なマクロ関数を真似たほうが良さそうだと分かります。 妥当なパクリ元を探してファイル内でスクロールをコロコロしてみると、ビューの行数・桁数を取得する関数(GetViewLines/GetViewColumns)が見つかると思います。 sakura/sakura_core/macro/CSMacroMgr.cpp Lines 475 to 476 in 64427bb
GetViewLinesの実装をパクるためには、キーとなる機能IDを同じように追加してやる必要があります。
Funccode_enum.hとFunccode_define.hは自動生成なので、挿入すべきコードは3か所であると分かります。 まずは Funccode_x.hsrc に追加するマクロ関数の機能IDを追加します。 次に、追加するマクロ関数のスクリプト定義を追加します。 最後に、マクロ関数の実体コードを追加します。 以上のように、マクロ関数の実装はそんなに難しいものじゃないです。 ぼくがこれらのコミットをPRとしない理由は、どうせ誰もレビューできんからです。 なのでまぁ、誰かやる気のある人がPRしてくれればそのほうがいいと思ってPRにはしないでおくことにしました。 |
さすが @beru さん 😃 |
#1388 (comment) に追加の手順が詳細に書かれていたので作業しやすかったです。 このIssueをはもう閉じてしまっても良いんでしょうか?それとも自作のスマートインデントプラグインを作っている者さんが Ver 2.4.2 リリース後に成仏したのを見届けてから? |
引用元要望は100%達成されていると思うので閉じても問題ないはずです。 7末にOSDNでオートインデントON/OFFの判定方法を訊いてた人の要望だと思うので、放置せずに細かく切っていくのがベターだとは思っていますが。 |
https://egg.5ch.net/test/read.cgi/software/1587603412/146
The text was updated successfully, but these errors were encountered: