FreeBASIC IUP_FB_EDITOR
目次→フォーラム→FreeBASIC→補足→FreeBasic IUP_FB_EDITOR←オリジナル・トピック
英語オリジナル
ダウンロード

概要
このエディタは、IUP、LIBICONV ライブラリと、エディタのベースであるライブラリ SCINTILLA を利用して作られています。
この 3つのライブラリに携わっていただいた方々に感謝いたします。
そして、FreeBasic コンパイラーの開発者のおかげで、エディターを構築できました。
このエディタの主な目的は、FreeBasic 言語のプログラムを作成、編集、コンパイルすることです。
必要に応じて、このエディタは他の用途でも使えます。
IUP_FB_EDITOR は、Linux と Windows システム用の、オープンソース・エディタです。
エディタ表示は、ロシア語、英語、スペイン語、日本語、フランス語に対応しています。
このエディタのコードの一部またはすべてのコードを、上記のサードパーティ・ライブラリのライセンス条件に違反せずに、あなたのプロジェクトで完全に自由に利用することができます。
エディタの作成に使ったライブラリのバージョン:
IUP (3.22) {exception: For Linux 32-bit the latest version of the library 3.21}
注:ライブラリ・バージョン 3.23 - 3.27 を使うことが推奨されます。
LibIconv-2 ( 1.15.0.0 )
使ったコンパイラ: FreeBasic 1.05 (32 \ 64bit) for Windows, Linux
注: 現在は、エディタのすべてのバージョンは、1.07.1 コンパイラを使ってコンパイルしています。
エディタの機能:
- 基本的な編集機能
- コード補完
- コード自動補完
- 関数のヒント
- 変数の宣言場所へ移動し、その型を表示
- しおり
- 予約語を指定の大文字小文字に変換
- 検索・置換
- コンパイル・実行・即実行
- サードパーティのプログラムやツールを実行する機能
- 変換:保存ファイルを別のエンコードにできます
- 構文の強調表示
- コード折りたたみ (不十分ですが)
- 自動字下げ
- プラグイン
- プロジェクト
開発著作者:
開発著作: Stanislav Budinov
各国語への翻訳:
日本語インターフェース: Makoto WATANABE
スペイン語インターフェース: c-sanchez
フランス語インターフェース: Laurent Gras aka SARG
利用開始
Windows で始めるには:
- お使いのシステムに適したエディタを含むアーカイブをダウンロードして、Program Files 以外の任意のフォルダに解凍してください。
For windows 32-bit : iup_fb_editor32.zip
For windows 64-bit: iup_fb_editor64.zip
または iup_fb_editor32.zip
- エディタを起動して、エディタの設定画面で、コンパイラのパスやヘルプファイル(chm)を指定したり、オプションでその他の設定を任意に変更できます。
- 何かコードを書き、即実行(F5)を押して、コンパイラを使ってエディタをテストします。
- FreeBASIC の予約語にカーソルを置いて、F1 キーを押します。
- 全てがうまくいけば、プログラムを書き始めることができます。
Linux で始めるには:
- アーカイブをダウンロードします:
linux 32-bit の場合: iup_fb_editor32linux.zip
linux 64-bit の場合: iup_fb_editor64linux.zip
- IUP ライブラリを公式サイトからダウンロードし、IUPライブラリの作者の推奨に沿ってインストールします。
私は、windows32、windows64、Linux64 に IUP のバージョン(3.22〜3.27)を使用し、Linux32 ではバージョン3.21(作者が最後にコンパイルしたバージョン)を使いました。
これより新しい IUP のバージョンだと、プログラムが正しく動くかどうか保証できません。
エディターには GTK2 の IUP を使っているため、「GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported」などのエラーが出ないように、目的のファイルを選択してダウンロードしてください。(方法はこちら)
- libIconv ライブラリをインストール(インストールされていない場合)
- エディタを起動して、設定からコンパイラ、ヘルプファイル(html 形式のメインページ)、ブラウザ、ターミナルのパスを指定します。
Linux では、ほとんどのプログラムのパスはグローバルなので、コンパイラ(fbc)、ブラウザ(firefox など)、ターミナル(mate-terminal など)の名前だけを指定すれば十分です。
また、必要に応じて、その他の設定を自由に変更できます。
- 何かコードを書き、即実行(F5)を押して、コンパイラを使ってエディタをテストします。
- FreeBASIC の予約語にカーソルを置いて、F1 キーを押します。
- 全てがうまくいけば、プログラムを書き始めることができます。
文字コード
エディタは、内部的に UTF-8 符号化で動作します。
- ツールバーの「エンコード」ボタンを押し、表示されるメニューの「保存するファイルのエンコードを設定」で、文字コードを選択することで、プログラムを保存する文字コードを指定できます。
この操作は、ファイルを保存するのではなく、ファイルを保存する場合に、選択したエンコーディングで保存することをエディタに指示するだけです。
また、即実行では、選択した文字コードが使われます。
- 「文書をここでエンコードして変換する」は、ASCII ファイルを対象としたメニューです。
この機能を使うと、保存していない文書でも、ある文字コードから別の文字コードに変換できます。
異なる ASCII 文字コードのテキストを混在させたい場合に便利です。
渡辺注:これは特殊な機能で、日本語環境の英数ではうまく使えないと思います。
1990年代にいくつかのロシア語エンコーディングが開発されました(Cp866、KOI8-R、CP1251)。
ロシア語環境で、コンソールでは、エンコーディングは Cp866 で、ファイルや GUI の場合は CP1251 です。
ファイルが Cp866 エンコーディングで保存されている場合、コンソールには正しく表示されますが、ファイルを操作する関数(open、put#...)を使うことはできません。この機能を使うと、元のファイルを保存せずに、エディタで ASCIIテーブルの文字を変更できます。
- 「ファイルのエンコードを変えて再表示」機能は、ファイルのエンコードを確実にするためのものです。
エディタは、Unicode と UTF-8(BOM付き) の文字コードだけを自動的に認識します。
エディタがファイル内の文字コードを認識しない場合は、可能な文字コード(120種類)のリストにある別の文字コードでファイルを開くかどうかを尋ねてきます。
文字を認識するために使う文字コードを指定して、ファイルを開き直すことができます。
- メニュー項目に表示する文字コードを、メニュー項目「メニューに表示するエンコード」で指定することができます。
- 今後開くファイルのデフォルト文字コードをメニューで指定します:
メニューの「既定のエンコードを設定」で、今後開くファイルのデフォルト文字コードを指定します。
「Default System」のままにしておくと、エディターは自動的にシステムの文字コードを検出します。
利用できる文字コード:

検索

検索は、他のエディターとほとんど変わりませんが、いくつかの特徴について詳細を記述します:
- 検索時に「全て検索」を選択すると、編集出力画面に結果が表示されます。
見つかった項目(行)をクリックすると、エディターはエディターメイン画面で検索場所を自動的に選択表示します。
- 「全て置換」指定を「すべてのファイル内」に対して実行すると、すべてのファイルで置換が行われます。
出力ウィンドウには、置換が行われたファイル/タブによる置換に関する情報を含む、置換の数に関する情報が表示されます。
必要な項目をクリックすると、必要なタブがアクティブになります。
すべてのファイルの置換操作を後で元に戻したい場合、エディターはすべてのファイルに対して自動的には実行しません。
置き換えられたすべてのファイルを調べて、各ファイルに対して元に戻す操作を実行する必要があります。
この場合、出力ウィンドウの情報が役立ちます。
- 検索後入力ボックスの右の下向き三角ボタンを押すと、過去に検索した単語をメニュー表示します。
注:POSIX (Portable Operating System Interface for UNIX)
正規表現の違い
http://itdoc.hitachi.co.jp/manuals/3020/30203R7651/IMDS0377.HTM
コンパイルと実行
コンパイラへのパスと、その他のパス指定は、メニューにあります:
オプション -> エディタ設定 -> パス

Windows では、コンパイラ、デバッガ へのパスは、相対パスが使えます。
Linux では、コンパイラパスはグローバル(通常は fbc のみ)なので、相対パスにする必要はありません。
$A- エディタ EXE ファイルが配置されているディレクトリ。
登録例: $A\compiler\fbc.exe
ツールバーの 4つのボタン、コンパイル/実行 の使い方:
これらの選択肢は、メニューの「構築」からも利用できます。
メニューには、「デバッガーを実行」の項目もあります(外部デバッガーが使われます)。
「コンパイル」すると、出力ウィンドウに、エラーと警告が表示されます。
出力ウィンドウで項目をクリックすると、エディターはメインエディター画面でエラーの場所を自動的に選択します。
エラーが別のファイルにある場合、エディターは目的のタブに切り替わり、エラーを強調表示します。
エラーのあるファイルが開かれていない場合、エディターはそのファイルを開き、エラーのある行を表示します。
コンパイル時に、先に保存されていたファイルはエディターによって自動的に保存されます。
「即実行」の場合、エディターはファイルを保存しませんが、現在のファイルの内容を使って一時ファイルを作成し、コンパイルします。
コンパイルが成功すると、即実行は、実行ファイルを起動します。
プログラムが終了すると、システムからすべての一時ファイルが削除されます。
ただし、プロジェクトの場合、即実行はプロジェクトを保存しますが、システムから一時的にコンパイルされたファイルも削除します。
オプション -> エディタ設定 -> その他 にある、「起動後にコマンドラインを離れる」オプションを指定すると、実行可能ファイルの実行後にコマンドラインを離れることができます。
これは、プログラムの実行後にエラーに関する情報を取得する必要がある場合、特にコンパイラ・オプション -exx を使う場合に役立ちます。
追加のコンパイル・コマンドはメニューで構成されます:
オプション -> 構築の設定...
パーサー(構文解析 parser)

構文解析は以下の機能に影響します:
- 自動補完(文字入力時にキーワードリストを出力)
- ヒント
- 変数宣言の場所に移動
- 変数型の表示
パーサー(構文解析)をオフにすると、以下にリストされている機能が自動的にオフになります。
自動補完オプション(ENTER キーを押したとき、関数や繰返しなどの最後のブロックが補完されます)は、パーサーに依存しません。
+ 1行 オプションは、自動補完時に追加の行を作成します。
+ 1行 - off :
for i as long = 0 to 10
b +=i
next
+ 1行 - on:
for i as long = 0 to 10
b +=i
next
大きいサイズのファイルを扱う場合、パーサーを更新するタイミングを設定することが重要になります。
設定する時間は、各コンピュータの能力に合わせて選択します。
たとえば、Linux 64 ビットでは、ファイルサイズ 2,500 行、タイマー 50 ms、情報ウィンドウ 700 ms に設定し、プロンプトの制限をしない - このような設定でも、プログラムの編集に不便はありません。
しかし、Windows では、同じ設定でも、ファイルサイズが 3,500 行になると カーソルを移動するときに、操作が重たくなります。
パーサーは、現在編集可能なファイルから完全な情報を自動的に読み取ります(型と囲みの項目、関数の宣言と本体、スコー プを区別したすべての変数の宣言)。
ダウンロードされた他の BI ファイル(非アクティブなタブ内)からは、パーサーは制限された情報(型項目と関数宣言)を読み取ります。
つまり、非アクティブなタブエディタで宣言された変数は、パーサーでは考慮されません。
パーサーは、複数行の行を読み取ることはできます(つまり、行の運びを認識できます)が、コロン文字を使った分割行を認識できません(コロンの後に続くものは、すべて単純に破棄されます)。
関数やパーサー(パーサーによって異なります)のヒントは、ファイル・サイズに応じて調整する必要があります。
原則は、パーサー更新時間を 100ミリ秒、ヒントの遅延を 30〜40ミリ秒に設定することを推奨しますが、大きなプロジェクトを作成しない場合は、ヒントの遅延をオフにすることができます。
「パーサー更新時間」と「ヒントの更新時間」は、数字が大きいほど、最後のキーストローク後にメインパーサーを起動するまでの時間が長くなります。
タイマーが切れる前にキーが押された場合、タイマーは再びカウントを開始し、パーサーの作業は延期されます。
「関数ウインドウの更新時間」は、数字が大きいほど、ミニパーサーの起動に時間がかかり(メインパーサーを無効にしても常に動作します)、テキストの入力にかかる時間が長くなり、パーサーの実行にかかる時間が短くなります。
プラグイン設定

プラグインを使うためには、「plugins」フォルダにプラグインを置き、「プラグイン設定」でプラグインをオンにする必要があります。
エディタを再起動して、プラグインをロードします。
ホットキー
- 新規ファイル - Ctrl + N
- ファイルを開く - Ctrl + O
- ファイルを保存 - Ctrl + S
- 名前を付けて保存 - Ctrl + ALT + S
- 全て保存 - Shift + Ctrl + S
- タブを閉じる - F4
- 全てのタブを閉じる - Ctrl + F4
- 元に戻す - Ctrl + Z
- 繰り返す - Ctrl + Y
- 切取り - Ctrl + X
- コピー - Ctrl + C
- 貼付け - Ctrl + V
- 削除 - Delete
- 全て選択 - Ctrl + A
- 検索 - Ctrl + F
- 置換 - Ctrl + R
- 次を検索 - F3
- 前を検索 - Ctrl + F3
- GoTo - Ctrl + G
- しおり設定 - Shift + F8
- 次のしおりに - F8
- 前のしおりに - Ctrl + F8
- 全てのしおりを削除 - Shift + Ctrl + F8
- 選択文字を大文字に - Ctrl + U
- 選択文字を小文字に - Ctrl + L
- 表示拡大 - Ctrl + (NUM +)
- 表示縮小 - Ctrl + (NUM -)
- 既定の大きさ - Ctrl + (NUM /)
- コンパイル - Shift + Ctrl + F5
- 実行 - Shift + F5
- コンパイルして実行 - Ctrl + F5
- 即実行 - F5
- コメント化 - F9
- 非コメント化 - Ctrl + F9
- 右のタブを表示 - Ctrl + TAB
- 左のタブを表示 - Ctrl + Shift + TAB
- エディタを終了 - ALT + F4
- 自動字下げ - Ctrl+Shift+F12
- インクルード・ファイルを開く (#include "xxxxxxx") - Ctrl+LEFT CLICK MOUSE
- 自動補完画面を開く - Ctrl+SPACE
- カーソルがあるブロック(関数、手続き、コンストラクターなど)の情報を表示 - F6
- 変数の宣言に移動(現在のファイルで宣言されている変数の場合のみ) - F2
- 操作後に戻る:変数の場所に移動します(現在のファイルで宣言されている変数の場合のみ) - Ctrl+Shift+F2
- 変数の型を表示 - Ctrl+F2
コード整形
コードが次のように見にくい場合:
while 1
b+=1
wend
do
b+=1
loop
自動字下げ で、コードを自動的に整形します(不要な空白を削除し、必要な字下げを追加します):
while 1
b+=1
wend
do
b+=1
loop
プロジェクト
このエディターが実装しているのは、簡易的なプロジェクト機能です。
プロの IDE(Microsoft Visual Studioなど)のように機能することを期待しないでください。
このエディターでプロジェクトは、ファイルのダウンロード、コンパイル、ナビゲートを簡単にするためのファイルのグループにすぎません。
同時にダウンロードできるプロジェクトは 1つだけです。
このエディターのプロジェクトの、単に個々のファイルの作業と比較した場合の利点:
- エディターの任意のプロジェクトタブから、プロジェクトをコンパイルします。
一部のプロジェクト・ファイルがエディターにロードされていない場合でも、コンパイル時にそれらは考慮されます。
- コンパイルする前に、編集したすべてのプロジェクト・ファイルを自動的に保存します。
- プロジェクトウィンドウから、いつでも直接エディタにプロジェクト・ファイルをダウンロードできます。
- 新しいプロジェクト・ファイルには、プロジェクト作成時に指定したエンコーディングが常に含まれています。
- プロジェクトは、拡張子が *.prj の単一ファイルでロードします。
- あるプロジェクトを作って作業している場合、エディターを起動したとき、そのプロジェクトは過去のプロジェクトのリストに入っているので、エディターにダウンロードするだけで済みます。
- 新規または既存のファイルを、いつでもプロジェクトに追加できます。
ファイルを、モジュールまたはリソースファイル(*.rc)として定義すると、それらは自動的にコンパイルに含まれます。
プロジェクトからファイルを削除(メイン以外)したり、プロジェクト・ファイルの名前を変更することもできます。
プロジェクト・ファイルのリストと過去のプロジェクトのリストは、関数リストと同じウィンドウに表示されます。
切り替え用のボタンがあります:

ボタンを押すと、プロジェクトファイルが表示されます。
ボタンが押されない場合は、関数一覧が表示されます。
プロジェクトがまだ読み込まれておらず、ボタンが押された場合は、過去のプロジェクトのリストが表示されます。
ここで、マウスをダブルクリックして、プロジェクトをエディターにダウンロードできます:

プロジェクト・ファイルのリストは次のようになります:

プラス記号「+」が付いたファイルはプロジェクトにロードされ、マイナス記号「-」が付いたファイルはロードされません。
エディタにプロジェクトファイルをダウンロードするには、リストから目的のファイルをダブルクリックするだけです。
エディターからファイルをアンロードするには、タブ内の十字でファイルを閉じるか、[ファイル] -> [閉じる]メニューからファイルを閉じます。
これは、特定のファイルですべての作業を行った後、そのファイルがエディタの場所を占めていない場合に便利です。
アンロードされたファイルもプロジェクトの一部であり、モジュールまたはリソースファイル(*.rc)の場合は、コンパイル時に考慮されることに注意してください。
括弧内のファイルはプロジェクトのメインファイルであり、常にモジュール(メインモジュール)です。
プロジェクトモジュールは文字「M」で表示されます。
プロジェクトモジュールのリストから、いつでもプロジェクトの別のメインファイル(モジュール)を割り当てることができます。
プロジェクトのメインファイルまたはメインモジュールは、プログラムの開始場所です。
ちなみに、モジュールは、通常、コンパイル時に次のように表示される自律ファイルです:
fbc main_module.bas module1.bas module2.bas
他のプロジェクトファイル(*.rc リソースファイルを除く)はコンパイル時に考慮されません。
含める場合は、プログラマー自身がコンパイルに含める責任があります。
通常、これらのファイルを有効にするには、プログラマーは目的のファイルに #include ディレクティブを使います。
プロジェクトを作成したり、プロジェクトを閉じたり、既存のプロジェクトを開いたりするには、「プロジェクト」メニューから行います。
また、「プロジェクト」メニューでは、新規または既存のファイルをプロジェクトに追加できます。
ファイルは、モジュールとして追加することも、任意のファイル(インクルードファイル(*.bi)、リソースファイル(*.rc)、テキスト(*.txt)など)として追加することもできます。
新規プロジェクト作成・プロジェクト設定は以下の画面です:

プロジェクトのパス設定やエンコーディングの設定は、プロジェクト作成時のみ可能です。
重要!!! プロジェクト名は有限コンパイルファイルの名前です! この名前は、この画面でのみ変更できます。
"Build" 文字列では、コンパイラ・オプションを使えません:
-x - コンパイラでコンパイルされたファイルの名前は、エディタに伝達される
-m - コンパイラのメインモジュールの名前は、エディタに伝達される
ヘルプ・ファイル
FreeBasic ヘルプをメニューに追加:[オプション] -> [エディタ設定...] -> [パス] でヘルプファイルへのパスを追加します。
このヘルプは、Windows ではファイル *.chm、Linux ではファイル *.htmlになります。
エディタ画面でコード作成中に、FreeBasic 予約語上にカーソルがある状態で、F1 キーを押すと、ヘルプがページ上に開きます。
これはこの参照用に表示されるものです!
さらに、他のヘルプファイルを追加することができます:[オプション] -> [ヘルプ・メニューの設定...]

「コマンド行」に登録するヘルプ・ファイルへのパスは、相対パスをサポートします。
$A - エディタ EXE ファイルが配置されているディレクトリ。
レコード例:$A\help\help.chm
ツール
ツールを構成するためのメニュー: オプション -> ツール・メニューの設定...
利用できる定数:
- $A - エディタ EXE ファイルが配置されているディレクトリ
- $PATH - アクティブ・タブから現在のファイルへのパス
- $FILE - アクティブ・タブから現在のファイルの名前
- $EXT - アクティブ・タブからの現在のファイルの拡張子
- $C - ファイルとそのパラメータを分割するために使います
本格的な構文解析は行っていません。これらの定数が、それが表すもので直接置き換えられるだけです。
例:
$A\Tools\mytools.exe$C$PATH\$FILE$EXT
その他
- コードの区切りは、freebasic 用に書かれた字句解析のおかげで、つたない手作業で実装しています。
設定で字句解析器(lexer)を変更できます。
このプログラミング言語で可能な値は、「freebasic」、「vb」です。 どちらの字句解析にも欠点があるので、お好みでどうぞ。
- ツールバーの「字下げ・字上げ」は、TABキーとは少し異なる機能を持っています。
カーソルが行のどこにあっても、これらのボタンを使うと、テキストの字下げと字上げは常にその行全体に実行されます。
- インクルードファイルを開く関数(#include "xxxxxxx")を使うには、設定で INCLUDE ディレクトリのパスを設定する必要があります。
ページ歴史:2021-10-09
日本語翻訳:WATANABE Makoto、原文著作者:VANYA,Stanislav Budinov
