diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-02-24 06:27:07 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-02-24 06:27:07 +0900 |
| commit | 13b159c6dd499b5c67a110e02780d9e741f0ecdb (patch) | |
| tree | 85e254e8ac1962f1d16ed5f3a4c1b8964834622f /vhosts/blog/public/posts/2024-01-10/neovim-insert-namespace-declaration-to-empty-php-file/index.html | |
| parent | ac0be4b5207aa3375b745cad7c96533c3f2380b6 (diff) | |
| download | nsfisis.dev-13b159c6dd499b5c67a110e02780d9e741f0ecdb.tar.gz nsfisis.dev-13b159c6dd499b5c67a110e02780d9e741f0ecdb.tar.zst nsfisis.dev-13b159c6dd499b5c67a110e02780d9e741f0ecdb.zip | |
feat(blog/nuldoc): do not insert whitespace to linebreaks between Japanese sentences
Diffstat (limited to 'vhosts/blog/public/posts/2024-01-10/neovim-insert-namespace-declaration-to-empty-php-file/index.html')
| -rw-r--r-- | vhosts/blog/public/posts/2024-01-10/neovim-insert-namespace-declaration-to-empty-php-file/index.html | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/vhosts/blog/public/posts/2024-01-10/neovim-insert-namespace-declaration-to-empty-php-file/index.html b/vhosts/blog/public/posts/2024-01-10/neovim-insert-namespace-declaration-to-empty-php-file/index.html index 7c30e091..1e7cd5ee 100644 --- a/vhosts/blog/public/posts/2024-01-10/neovim-insert-namespace-declaration-to-empty-php-file/index.html +++ b/vhosts/blog/public/posts/2024-01-10/neovim-insert-namespace-declaration-to-empty-php-file/index.html @@ -66,14 +66,14 @@ NOTE </div> <div class="admonition-content"> - この記事は <a href="https://vim-jp.org/ekiden/" rel="noreferrer" target="_blank">Vim 駅伝</a> #136 の記事です。 + この記事は <a href="https://vim-jp.org/ekiden/" rel="noreferrer" target="_blank">Vim 駅伝</a> #136 の記事です。 </div> </div> <section id="section--intro"> <h2><a href="#section--intro">やりたいこと</a></h2> <p> - Neovim で空の PHP ファイルを開いたとき、そのファイルが置かれているディレクトリの構造に基づいて、自動的に <code>namespace</code> 宣言を挿入したい。具体的には、トップレベルの名前空間が <code>MyNamespace</code> であり、ファイル <code>src/Foo/Bar/Baz.php</code> を開いたときに、そのファイルが空であるなら、次のようなテンプレートが自動的に挿入されてほしい。 + Neovim で空の PHP ファイルを開いたとき、そのファイルが置かれているディレクトリの構造に基づいて、自動的に <code>namespace</code> 宣言を挿入したい。具体的には、トップレベルの名前空間が <code>MyNamespace</code> であり、ファイル <code>src/Foo/Bar/Baz.php</code> を開いたときに、そのファイルが空であるなら、次のようなテンプレートが自動的に挿入されてほしい。 </p> <pre class="highlight" language="php"><code class="highlight"><span class="hljs-meta"><?php</span> @@ -89,29 +89,29 @@ Build type: Release LuaJIT 2.1.1693350652</code></pre> <p> - 今回は Lua で処理を記述したため、Vim では動作しない。以下の説明でも Neovim に絞って述べる。 また、パス区切りがスラッシュである前提で記述したため、Windows には対応していない。 + 今回は Lua で処理を記述したため、Vim では動作しない。以下の説明でも Neovim に絞って述べる。また、パス区切りがスラッシュである前提で記述したため、Windows には対応していない。 </p> </section> <section id="section--ftplugin"> <h2><a href="#section--ftplugin">ftplugin を用意する</a></h2> <p> - Neovim には特定のファイルタイプに対して特別な処理をおこなうための ftplugin と呼ばれる仕組みがある。 Neovim の設定を置くディレクトリ (例えば <code>~/.config/nvim</code>) の配下に <code>ftplugin/<FILE_TYPE>.vim</code> または <code>ftplugin/<FILE_TYPE>.lua</code> というファイルを配置すると、その <code><FILE_TYPE></code> が読み込まれたときにそのファイルが自動的に実行される。 + Neovim には特定のファイルタイプに対して特別な処理をおこなうための ftplugin と呼ばれる仕組みがある。Neovim の設定を置くディレクトリ (例えば <code>~/.config/nvim</code>) の配下に <code>ftplugin/<FILE_TYPE>.vim</code> または <code>ftplugin/<FILE_TYPE>.lua</code> というファイルを配置すると、その <code><FILE_TYPE></code> が読み込まれたときにそのファイルが自動的に実行される。 </p> <p> - 今回は、Neovim がデフォルトで用意している PHP 用 ftplugin が動作したあとに追加の処理をおこないたいので、<code>after/ftplugin/php.{vim,lua}</code> というファイルを配置する。名前から察せられるとおり、<code>after/ftplugin</code> 以下のファイルは <code>ftplugin</code> 以下のファイルよりもあとに実行される。 + 今回は、Neovim がデフォルトで用意している PHP 用 ftplugin が動作したあとに追加の処理をおこないたいので、<code>after/ftplugin/php.{vim,lua}</code> というファイルを配置する。名前から察せられるとおり、<code>after/ftplugin</code> 以下のファイルは <code>ftplugin</code> 以下のファイルよりもあとに実行される。 </p> <p> - この記事では Lua で処理を記述するため、拡張子には <code>.lua</code> を用いる。 これ以降載せるコードは、すべて <code>after/ftplugin/php.lua</code> の中に記述している。 + この記事では Lua で処理を記述するため、拡張子には <code>.lua</code> を用いる。これ以降載せるコードは、すべて <code>after/ftplugin/php.lua</code> の中に記述している。 </p> </section> <section id="section--did-ftplugin"> <h2><a href="#section--did-ftplugin">二重読み込みを防ぐ</a></h2> <p> - ファイルタイプは読み込んだあとに変更されることもあるので、ftplugin は複数回実行されうる。 二重読み込みを防ぐために、<code>did_ftplugin_<FILE_TYPE>_after</code> というバッファローカル変数を定義しておくのが慣習となっている。 + ファイルタイプは読み込んだあとに変更されることもあるので、ftplugin は複数回実行されうる。二重読み込みを防ぐために、<code>did_ftplugin_<FILE_TYPE>_after</code> というバッファローカル変数を定義しておくのが慣習となっている。 </p> <pre class="highlight" language="lua"><code class="highlight"><span class="hljs-keyword">if</span> vim.b.did_ftplugin_php_after <span class="hljs-keyword">then</span> @@ -126,7 +126,7 @@ vim.b.did_ftplugin_php_after = <span class="hljs-literal">true</span></code></pr <section id="section--implement"> <h2><a href="#section--implement">実装する</a></h2> <p> - では実装していこう。今回私は次のようなロジックとした。以降、「今 Neovim で開いた PHP ファイル」のことを「対象ファイル」と呼ぶことにする。 + では実装していこう。今回私は次のようなロジックとした。以降、「今 Neovim で開いた PHP ファイル」のことを「対象ファイル」と呼ぶことにする。 </p> <ol> @@ -156,7 +156,7 @@ vim.b.did_ftplugin_php_after = <span class="hljs-literal">true</span></code></pr </ol> <p> - 実装を簡単にするため、Composer を用いない場合や PSR 4 以外のオートロード規則を使う場合には対応しない。少々長くなるが、以下にスクリプト全文を載せる。 + 実装を簡単にするため、Composer を用いない場合や PSR 4 以外のオートロード規則を使う場合には対応しない。少々長くなるが、以下にスクリプト全文を載せる。 </p> <pre class="highlight" language="lua"><code class="highlight"><span class="hljs-keyword">if</span> vim.b.did_ftplugin_php_after <span class="hljs-keyword">then</span> @@ -277,7 +277,7 @@ vim.b.did_ftplugin_php_after = <span class="hljs-literal">true</span></code></pr <section id="section--outro"> <h2><a href="#section--outro">おわりに</a></h2> <p> - 簡易的な実装だが、多くのケースではうまく動いているようだ。 最大の問題は PSR 4 に準拠しないフレームワークを用いているとまったく役に立たないことで、今まさに職場で困っている。 こちらはいずれ改良したい。 + 簡易的な実装だが、多くのケースではうまく動いているようだ。最大の問題は PSR 4 に準拠しないフレームワークを用いているとまったく役に立たないことで、今まさに職場で困っている。こちらはいずれ改良したい。 </p> </section> </div> |
