From 6ef107b199ca78eb82861e3c3494652d49a6f12a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=BE=E6=B5=A6=20=E7=9F=A5=E4=B9=9F=20Matsuura=20Tomoy?= =?UTF-8?q?a?= Date: Tue, 22 Jul 2025 17:09:00 +0900 Subject: [PATCH] [obsidian] vault backup: 2025-07-22 17:09:00[ --- content/コードフォーマッター.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 content/コードフォーマッター.md diff --git a/content/コードフォーマッター.md b/content/コードフォーマッター.md new file mode 100644 index 00000000..545c87b4 --- /dev/null +++ b/content/コードフォーマッター.md @@ -0,0 +1,16 @@ +--- +date: 2025-07-22 17:00 +--- +#programming-language + +一般的なコードフォーマッターの実装について。 + +[How to write a code formatter](https://yorickpeterse.com/articles/how-to-write-a-code-formatter/) + +1行当たり最大文字数がこのくらい、としたときに、どういう戦略で折り返すかは結構難しい問題。 + +文字列→トークン→ASTという順番で変換されるので、この逆順が良いのかとも思ったが、 + +AST→フォーマッタ用の専用の木構造みたいな中間表現を一度挟んだほうが賢いのかもしれない + +