	var title="NeO.EditCoderFileByExt.js"
	var path=AkelPad.GetEditFile(0);
	var ext=path.substring(AkelPad.GetEditFile(0).lastIndexOf('.', path.length) + 1, path.length).toLowerCase();

	var cacheFileText = '\n' + AkelPad.ReadFile(AkelPad.GetAkelDir() + "\\AkelFiles\\Plugs\\Coder\\cache")
	
	posExt = cacheFileText.indexOf('"' + ext + '"')
	if (posExt != -1)
	{
		posStartLine = cacheFileText.lastIndexOf('\n', posExt)
		if (posStartLine != -1)
		{
			posEqual = cacheFileText.indexOf('=', posStartLine)
			if (posEqual != -1)
			{
				if (posEqual < posExt)
				{
					pathnameextOfCoderFile = AkelPad.GetAkelDir() + "\\AkelFiles\\Plugs\\Coder\\" + cacheFileText.substring(posStartLine+1, posEqual)

					var fso = new ActiveXObject("Scripting.FileSystemObject"); 
					var bIsFileExist = fso.FileExists(pathnameextOfCoderFile);
				
					if (bIsFileExist) AkelPad.OpenFile(pathnameextOfCoderFile)
					else AkelPad.MessageBox(AkelPad.GetMainWnd(), '[' + pathnameextOfCoderFile + "]\nне существует", title, 64 /*MB_ICONINFORMATION*/);
				}
				else AkelPad.MessageBox(AkelPad.GetMainWnd(), 'Почему-то [=] дальше чем [' + ext + ']', title, 64 /*MB_ICONINFORMATION*/)
			}
			else AkelPad.MessageBox(AkelPad.GetMainWnd(), 'Почему-то [=] не найдено после ["переноса строки"].', title, 64 /*MB_ICONINFORMATION*/)
		}
		else AkelPad.MessageBox(AkelPad.GetMainWnd(), 'Почему-то ["перенос строки"] не найдено перед [' + ext + ']', title, 64 /*MB_ICONINFORMATION*/)
	}
	else
	{
//		AkelPad.MessageBox(AkelPad.GetMainWnd(), 'Расширение\n[' + ext + ']\nв кэше не найдено.', title, 64 /*MB_ICONINFORMATION*/)
		AkelPad.OpenFile(AkelPad.GetAkelDir() + "\\AkelFiles\\Plugs\\Coder\\" + ext.toUpperCase() + ".coder")
	}








