オープンソースのコードエディタのソースを見れば参考になるかもね
言語は違うけどVSCodeやEclipseなど