Skip to content
To assist auto-completion for HSP.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
module
sample
LICENSE
Readme.txt

Readme.txt

[モジュール名] HSPAutoCompletionSystem
[ 著作権者 ] inonote
[ バージョン ] 1.1
[  連絡先  ] inonote046@gmail.com
[  HP  ] http://inonote.ifdef.jp/
[ Twitter  ] @inonote (https://twitter.com/inonote)
[ ライセンス ] GNU General Public License
[  GitHub  ] https://github.com/inonote/HSPAutoCompletionSystem
※等幅フォントで読むことをお勧めします。

◆変更履歴
[2018/01/03]Ver1.1 処理速度向上
[2017/12/25]Ver1.0 初版

◆概要
  このモジュールは、HSPソースコードで使用されている、変数、新規登録命令/関数、マクロのインデックスを
 出力するものです。
 自動補完機能に組み込むことで、Microsoft Visual Studio のインテリセンスの様な機能が実装することができ
 ます。

◆フォルダ構成
 [root]
  ├module
  │└HSPAutoCompletionSystem.hsp ... HSPAutoCompletionSystemのモジュールです。
  └sample
   ├sample1.hsp ... HSPソースコード内の全ての定義を取得し、ファイル出力するサンプル。
   └sample2.hsp ... 定義エクスプローラー。定義の検索や定義した場所を表示することが出来るサンプル。

◆サンプル実行時の注意
 必ず、サンプルの始めの行辺りにある、「HSPFOLDER」マクロの定義を、インストールされているHSPのcommonフ
 ォルダへのパスに置き換えてから実行してください。

◆仕様
 ・未初期化の変数も列挙。
  ・新規登録命令/関数、マクロの引数一覧も出力。
 ・インクルードされるファイルは自動的に読み込まれません。インクルードファイルリストに出力されます。
 ・キーワードが重複した場合の優先順位:
    命令 > 関数 > マクロ > マクロ(定数) > マクロ(列挙) > 変数
 ・モジュール変数は列挙されません。
  ・インクルードファイル検索の優先順位:
    ソースコードディレクトリパス > HSPのインクルードディレクトリ > デフォルトのディレクトリ
 ・読み込むソースコードの改行コードがCR+LF以外だと正しく解析されません。

◆命令
 ●HSPACS_SetHSPIncludeDir
  引数 : str フォルダパス
  説明 : HSPのcommonフォルダパスを指定します。
 
 ●HSPACS_SetDefIncludeDir
  引数 : str フォルダパス
  説明 : デフォルトのフォルダパスを指定します。
      一時ファイルに保存したなどでほかのファイルと隔離された場合に、元のフォルダパスを指定します。
      通常は使用しなくて良いです。
 
 ●HSPACS_OutIndexes
  引数 : str 読み込むファイル名
      str 出力するファイル名
      str ブラックリストファイル名
      str ユニークID(未使用)
      var 追加インクルードフォルダパスを入れる文字列型変数
      int 区切り文字コード
  説明 : インデックスを作成します。
      読み込むファイル名には、抽出するソースコードのファイルパスを指定します。
      出力するファイル名には、抽出結果として保存するファイルのパスを指定します。
      ブラックリストファイル名には、除外するタグ名をメモリーノートパッド形式で保存されたtxtファイ
      ルを指定します。
      ユニークIDには、"0"を指定します。
      追加インクルードフォルダパスを入れる文字列型変数には、抽出するソースコード内の#includeで指
      定されたインクルードするファイル名を列挙する文字列型変数を指定します。
      区切り文字コードには、タグ名とタイプ等の間の区切り記号に使用する文字コードを指定します。
      
      この命令ひとつでは抽出するソースコード内の#includeは処理されません。列挙された追加インクル
      ードフォルダパスを後から全て処理する必要があります。詳しくは、モジュール内のサンプルをご覧
      ください。

◆出力されるインデックスの書式
  
  {タグ名}<区切り文字>{タイプ}<区切り>{行}<区切り>{定義内容}
 
 タイプ:タイプ名    名称      定義出力内容 判断するプロプリセッサ
     0func    新規登録命令  引数リスト  #func #deffunc #modfunc #modinit #modterm #comfunc
     1cfunc   新規登録関数  引数リスト  #cfunc #defcfunc #modcfunc
     2macro   マクロ        マクロ定義  #define
     3const   マクロ(列挙)  マクロ定義  #const
     4enum    マクロ(定数)  マクロ定義  #enum
     5var     変数          なし        
 
[EOF]
You can’t perform that action at this time.