読者です 読者をやめる 読者になる 読者になる

エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

atomエディタの自動文字エンコード判定

最近atomが凄いみたいな噂をチラホラ聞いたので使ってみた

メモリを食い過ぎな感じはするけど、全てWeb技術で作られているので
Web系のエンジニアとしては、効率化したことや使われている技術を知ることで
色々学べるのでいいと感じた。

今回はatom使っていく上でエンコードが自動でされないことに違和感を覚えたのでメモ
日本人ならではの悩みなのかなぁ~と感じた

前提
Windows7 ※10にするのはまだ怖い。。。
Node.js
※jschardet、iconv-liteをインストールしておくこと

以下のスクリプトをinit.coffeeに埋め込む
---------------------
fs = require('fs')

atom.workspace.observeTextEditors (editor) ->
  try
    filePath = editor.getPath()
  catch error
    return
  return unless fs.existsSync(filePath)

  jschardet = require 'jschardet'
  iconv = require 'iconv-lite'
  fs.readFile filePath, (error, buffer) =>
    return if error?
    enc = jschardet.detect(buffer) ? {}
    return unless iconv.encodingExists(enc.encoding)

    enc.encoding = enc.encoding.toLowerCase().replace(/[^0-9a-z]|:\d{4}$/g, '')
    editor.setEncoding(enc.encoding)
  return
---------------------


これで多分自動判定してくれるはず。。。
やっていることは、読み込むファイルのエンコード判定して、エンコード設定しているだけ
あんまりJS詳しくなかったけど、いろいろ調べて勉強になった
CoffeeScriptの考え方に凄く共感したけど、拡張子が長いのはなんとかならんものか・・・
また、拡張子のcoffeeをタイピングミスしまくるのは私だけ?