Показать сообщение отдельно
Старый 22.09.2011, 13:42   #1  
KingPeas is offline
KingPeas
Участник
Аватар для KingPeas
 
163 / 35 (2) +++
Регистрация: 09.01.2007
Адрес: Россия, Новосибирск
Thumbs up Плагин к Tabax DEV_RegisterChange
Делалось достаточно давно еще когда работал на прежнем месте работы изначально под 3.0, потом переделывал под 4.0. Для работы необходим Tabax. Инструкцию, иконки и сам проект прикладываю в архиве (пока к сожалению версия только под 4).
Единственное что требуется для вмешательство в систему дописать в Editor один метод и дополнить один существующий. Свой исключил из проекта, поскольку у нас много мусора в нем.

Создаем
PHP код:
void DevelopersComment(Editor e)
{
    
int startLine e.selectionStartLine();
    
int endLine   e.selectionEndLine();
    
int startCol;
    
str startStr;

    
// >> GEV() 25 Авг 2009 GEV_NewProjectWithComment Создание новых проектов
    
boolean         header startLine == && endLine == && e.selectionStartCol() == e.selectionEndCol();
    ;
     if (
header)
     {
        
DEV_Scripts::commentCreateMethod(e);
     }
     else
     {
        
DEV_Scripts::commentChangeMethod(e);
     }


Исправляем getApplicableScripts и добавляем то что стоит между тегами
PHP код:
 // >> GEV() 29 Сен 2009
 
...
    
// << GEV() 29 Сен 2009 
В итоге должно получиться что то вроде такого кода.
PHP код:
// Use this method to control what scripts are shown on the scripts popup menu in the editor
container getApplicableScripts(Editor e)
{
    
classId id classnum(EditorScripts);
    
TreeNode AOTNode EditorScripts::getVersionControllableNode(e);
    
DictClass dc = new DictClass(id);
    
int i;
    
container scripts;
    
str methodName;

    
boolean applicableMethod (int offset)
    {
        
DictMethod mi dc.objectMethodObject(offset);
        if (
mi.noParms() != 2)
            return 
false;
        if (
mi.name() == methodstr(EditorScriptsshowScripts))
            return 
false;
        if ((
mi.name() == methodstr(EditorScriptsversionControl_checkOut) ||
            
mi.name() == methodstr(EditorScriptsversionControl_getLatest)) &&
            (!
versioncontrol.parmSysVersionControlSystem() || !AOTNode ||
            
versioncontrol.allowEdit(AOTNode)))
                return 
false;
        if ((
mi.name() == methodstr(EditorScriptsversionControl_undoCheckOut) ||
            
mi.name() == methodstr(EditorScriptsversionControl_checkIn)) &&
            (!
versioncontrol.parmSysVersionControlSystem() || !AOTNode ||
            !
versioncontrol.allowEdit(AOTNode)))
                return 
false;
        if (
mi.parameterType(1) == Types::Class)
            return 
mi.returnType() == Types::void;
        return 
false;
    }

    
// >> GEV() 29 Сен 2009
    
;

    
// > AxAssist, 10.10.2007
      
if(DEV_AxAssistSingleton::getThisClass().parmAltMEmulate())
    {
        
DEV_AxAssistSingleton::getThisClass().parmEditor(e);
        
DEV_AxAssistSingleton::getThisClass().parmAltMEmulate(false);
        return 
connull();
    }
    
// < AxAssist, 10.10.2007
    // << GEV() 29 Сен 2009

    // Insert menu items.
    
for (1<= dc.objectMethodCnt(); i++)
    {
        if (
applicableMethod (i))
        {
            
methodName dc.objectMethodObject(i).name();
            
scripts += methodName;
        }
    }

    return 
scripts;

Ну а дальше читаем инструкцию и пользуемся). Будут проблемы пишите постараюсь помочь.
Вложения
Тип файла: zip DevRegister.zip (520.2 Кб, 106 просмотров)
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ.
За это сообщение автора поблагодарили: mazzy (2).