mieki256's diary



2015/06/30(火) [n年前の日記]

#2 [prog][javascript] Atomエディタ + Script でエラーが出る問題

Windows7 x64 上でAtomエディタを試しているのだけど。Scriptパッケージを使えば、今現在開いてるバッファの内容をキーを叩くだけで実行してくれるわけです。しかし、Pythonスクリプト等の、1行目のおまじない ―― _シバン行 で余計なことをしてエラーを出しちゃうわけですよ。

シバン行ってのは、下のような行ですが。
#!/usr/bin/env python
*1

一応、C:\Users\アカウント名\.atom\packages\script\lib\script-view.coffee を開いて、getShebangメソッド?の中に return を書いとけばエラーは回避できるのですが。本来なら、 としておきたいところで。

調べてみたら、JavaScript、というか Node.js の場合、os.platform() や process.platform で、OSの種類を取得できるようで。'win32' が返ってきたら Windows で動かしてると。一応、node[Enter]で REPL なるものを動かして、os.platform() や process.platform と打ってみたら 'win32' と表示されたので、たぶん合ってると思いますが。合ってるのかな。どうなんだろう。初心者だから自信ないですけど。 *2

しかし、Atomのパッケージは CoffeeScript で書かれてるわけで。その場合、どう書けばいいのやら。JavaScript のアレコレはそのまま使えるの? どうなの? CoffeeScript 独自の何かで置き換えないといけないの?

などと悩みながら少し試してたんですが、たぶん以下のような感じで書いとけばOKっぽいなと分かったのでメモ。
  getShebang: (editor) ->
    return if process.platform is 'win32'

    text = editor.getText()
    lines = text.split("\n")
    firstLine = lines[0]
    return unless firstLine.match(/^#!/)

    firstLine.replace(/^#!\s*/, '')
process.platform が /^win32/ とマッチしたら何もせずに return せよ、みたいな。

公式のほうでもそうしておいて貰えないものか…。でも自分は英語が分からんから、どうにも…。何か他の部分で不具合出るかもしれんし。

他で不具合云々を考えると、オプション設定で変えられるようになってたほうがいいのかな。
*1: 「どうせお前はWindowsしか使わんのだから、そもそもシバンなんて書くなよ。無意味だろ」てな考えもアリですけど。
*2: _OS の判別 によると、window.navigator.platform で取得できる、とある。os とか process てのは Node.js だから使えるソレなのかな? よく分かりません。

以上です。

過去ログ表示

Prev - 2015/06 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project