////////////////////////////////////////////////////////////////////////////
// CLangConfig クラスのインタフェース宣言
// TaEditにおける、言語別の拡張をサポート
////////////////////////////////////////////////////////////////////////////

#if !defined( LANGCONFIG_H_INCLUDED_ )
#define LANGCONFIG_H_INCLUDED_

#include "../TaEdit_std.h"
#include "../ConfigInfo.h"

namespace NLangExt {

class CTxtColorMgr;

class CLangConfig
{
public:
	CLangConfig( VClsPtr< CConfigInfo > pConf );
	~CLangConfig();

	// ファイル名に対応した言語種類コードを取得
	enumLANGTYPE GetLangTypeID( const char* FileName ) const;

	// 色管理オブジェクトを構築
	CTxtColorMgr *CreateColorMgr( enumLANGTYPE type ) const;

private:
	// ファイル名の拡張子を取得
	string CLangConfig::GetExt( const char* fname ) const;

	// CConfigInfoから取得した情報を、mapExtTypeInfoに格納する
	void StoreExtTypeInfo( const string& ExtInfo, enumLANGTYPE n );

	// 拡張子と構築するオブジェクトの種類を保持
	map < string, enumLANGTYPE > mapExtTypeInfo;
};

// 言語名から言語種別を取得
enumLANGTYPE GetLangTypeID_ByLangName( const char *LangName );


};

#endif // LANGCONFIG_H_INCLUDED_

