// Check if it contains any code
if((!body.compound.declarations || !body.compound.declarations->count) && (!body.compound.statements || body.compound.statements->count <= 1))
{
- Class moduleClass = eSystem_FindClass(object.instance._class.module, "Module");
+ // Class moduleClass = eSystem_FindClass(object.instance._class.module, "Module");
Statement stmt = body.compound.statements ? body.compound.statements->first : null;
Type dataType = method.dataType;
Type returnType = dataType.returnType;
confirmation = false;
// Check if default function should be calling base class:
- if(object.instance._class._vTbl[method.vid] == moduleClass._vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Module_OnLoad]) // Temp Check for DefaultFunction
+ if(object.instance._class._vTbl[method.vid] == null /*moduleClass._vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Module_OnLoad]*/) // Temp Check for DefaultFunction
{
if(returnType.kind != voidType)
{
bool inUseDebug;
OpenedFileInfo openedFileInfo;
- FontResource font { codeFont.faceName, codeFont.size };
+ FontResource font { codeFont.faceName, codeFont.size, codeFont.bold, codeFont.italic };
saveDialog = codeEditorFileDialog;
Designer designer { codeEditor = this, visible = false, saveDialog = codeEditorFormFileDialog };
int oldLine = lastLine;
display.FontExtent(font.font, " ", 1, null, &spaceH);
{
- Box box { 0, (Min(oldLine,oldLine)-1) * spaceH - editBox.scroll.y, editBox.anchor.left.distance, (Max(oldLine, oldLine))*spaceH-1 - editBox.scroll.y };
+ Box box { 0, (oldLine-1) * spaceH - editBox.scroll.y, editBox.anchor.left.distance, oldLine*spaceH-1 - editBox.scroll.y };
Update(box);
}
{
- Box box { 0, (Min(line,line)-1) * spaceH - editBox.scroll.y, editBox.anchor.left.distance, (Max(line, line))*spaceH-1 - editBox.scroll.y };
+ Box box { 0, (line-1) * spaceH - editBox.scroll.y, editBox.anchor.left.distance, line*spaceH-1 - editBox.scroll.y };
Update(box);
}
lastLine = line;
display.FontExtent(font, ")", 1, &parW, null);
string[0] = 0;
- if(editor.functionType)
+ if(editor.functionType && type.kind == functionType)
{
PrintType(type.returnType, string, true, true);
display.FontExtent(font, string, strlen(string), &functionW, null);
display.FontExtent(font, ")", 1, &parW, null);
string[0] = 0;
- if(editor.functionType && type)
+ if(editor.functionType && type && type.kind == functionType)
{
PrintType(type.returnType, string, true, true);
display.FontExtent(font, string, strlen(string), &functionW, null);
int line = editBox.lineNumber + 1;
if(projectView)
{
- CompilerConfig compiler = ideSettings.GetCompilerConfig(ide.workspace.compiler);
+ CompilerConfig compiler = ideConfig.compilers.GetCompilerConfig(ide.workspace.activeCompiler);
ProjectConfig config = projectView.project.config;
int bitDepth = ide.workspace.bitDepth;
bool useValgrind = ide.workspace.useValgrind;
if(!parentClosing)
{
if(ide.workspace && fileName)
- ide.workspace.UpdateOpenedFileInfo(fileName, closed);
+ ide.workspace.UpdateOpenedFileInfo(fileName, closed, false);
if(inUseDebug && !debugClosing)
{
debugClosing = true;
void OnDestroy(void)
{
ObjectInfo oClass, next;
- Class windowClass = eSystem_FindClass(this.privateModule, "ecere::gui::Window");
+ // Class windowClass = eSystem_FindClass(this.privateModule, "ecere::gui::Window");
FreeType(this.functionType);
FreeType(this.instanceType);
classes.Delete(oClass);
}
- if(windowClass && windowClass.data)
- UnapplySkin(windowClass);
-
FreeParser();
if(sheet.codeEditor == this)
sprintf(message, $"The document %s was modified by another application.\n"
"Would you like to reload it and lose your changes?", fileName);
- if(MessageBox { type = yesNo, master = /*parent = */parent, text = $"Document has been modified",
+ if(MessageBox { creationActivation = flash, type = yesNo, master = /*parent = */parent, text = $"Document has been modified",
contents = message }.Modal() == yes)
reload = true;
}
void ModifyCode()
{
+ fixCaret = true;
selected.modified = true;
selected.oClass.modified = true;
****************************************************************************/
void FreeParser()
{
+ {
+ Class windowClass = eSystem_FindClass(privateModule, "ecere::gui::Window");
+ if(windowClass && windowClass.data)
+ UnapplySkin(windowClass);
+ }
+
SetCurrentNameSpace(null);
- if(ast != null)
+ if(ast)
{
FreeASTTree(ast);
ast = null;
}
- this.defines.Free(FreeModuleDefine);
- this.imports.Free(FreeModuleImport); // Moved this after FreeAST because Debug printing causes ModuleImports to be created
+ defines.Free(FreeModuleDefine);
+ imports.Free(FreeModuleImport); // Moved this after FreeAST because Debug printing causes ModuleImports to be created
- FreeExcludedSymbols(this.excludedSymbols);
- FreeContext(this.globalContext);
+ FreeExcludedSymbols(excludedSymbols);
+ FreeContext(globalContext);
FreeIncludeFiles();
- FreeGlobalData(&this.globalData);
+ FreeGlobalData(&globalData);
FindCtx_Terminate();
FindParams_Terminate();
SetPrivateModule(null);
}
+ // Note: This code should probably be merged with FreeParser()
+ if(ast)
+ {
+ FreeASTTree(ast);
+ ast = null;
+ //SetAST(null);
+ }
+ defines.Free(FreeModuleDefine);
+ imports.Free(FreeModuleImport);
+
+ FreeContext(this.globalContext);
+ FreeExcludedSymbols(this.excludedSymbols);
+
+ FreeIncludeFiles();
+ FreeGlobalData(&this.globalData);
+
if(this.privateModule)
{
FreeTypeData(this.privateModule);
delete this.privateModule;
- this.privateModule = null;
}
}
#endif
Project project;
- // This temporarily fixes issue with 2 overrides in release mode with VC6 (only happens with both ecere.dll and ide.exe compiled in release mode)
+ // This temporarily fixes issue with 2 overrides in release mode with VC6 (only happens with both ecere.dll and ecere-ide.exe compiled in release mode)
if(reentrant) return;
reentrant = true;
editBox.GetSelPos(&l1, &y1, &x1, &l2, &y2, &x2, false);
- FindCtx_Terminate();
- FindParams_Terminate();
-
- SetGlobalData(&globalData);
- SetGlobalContext(globalContext);
- SetExcludedSymbols(&excludedSymbols);
- SetTopContext(globalContext);
- SetCurrentContext(globalContext);
- SetDefines(&defines);
- SetImports(&imports);
- SetCurrentNameSpace(null);
-
/*
sprintf(command, "C:\\Program Files\\Microsoft Visual Studio\\VC98\\Bin\\cl "
"/nologo /D \"MSC\" /D \"WIN32\" /D \"NDEBUG\" /D \"_WINDOWS\" /D \"_MBCS\" "
this.oClass = null;
}
- {
- Class windowClass = eSystem_FindClass(this.privateModule, "ecere::gui::Window");
- if(windowClass && windowClass.data)
- UnapplySkin(windowClass);
- }
-
designer = backDesigner;
SetEchoOn(true);
fileInput = editFile = EditBoxStream { editBox = editBox };
SetFileInput(fileInput);
- if(ast)
- {
- FreeASTTree(ast);
- ast = null;
- //SetAST(null);
- }
- defines.Free(FreeModuleDefine);
- imports.Free(FreeModuleImport);
-
- FreeContext(this.globalContext);
- FreeExcludedSymbols(this.excludedSymbols);
-
- FreeIncludeFiles();
- FreeGlobalData(&this.globalData);
+ FreeParser();
- if(this.privateModule)
- {
- FreeTypeData(this.privateModule);
- delete this.privateModule;
- }
+ SetGlobalData(&globalData);
+ SetGlobalContext(globalContext);
+ SetExcludedSymbols(&excludedSymbols);
+ SetTopContext(globalContext);
+ SetCurrentContext(globalContext);
+ SetDefines(&defines);
+ SetImports(&imports);
#ifdef _TIMINGS
startTime = GetTime();
if(ide.workspace)
{
- CompilerConfig compiler = ideSettings.GetCompilerConfig(ide.workspace.compiler);
+ CompilerConfig compiler = ideConfig.compilers.GetCompilerConfig(ide.workspace.activeCompiler);
SetTargetBits(ide.workspace.bitDepth ? ide.workspace.bitDepth : GetHostBits());
delete compiler;
}
- this.privateModule = __ecere_COM_Initialize(false | ((GetTargetBits() == sizeof(uintptr) *8) ? 0 : GetTargetBits() == 64 ? 2 : 4), 1, null);
+ this.privateModule = __ecere_COM_Initialize((bool)(false | ((GetTargetBits() == sizeof(uintptr) *8) ? 0 : GetTargetBits() == 64 ? 2 : 4)), 1, null);
SetPrivateModule(privateModule);
// TODO: Get symbolsDir from project settings instead...
if(ide.projectView)
{
- CompilerConfig compiler = ideSettings.GetCompilerConfig(ide.workspace.compiler);
+ CompilerConfig compiler = ideConfig.compilers.GetCompilerConfig(ide.workspace.activeCompiler);
ProjectConfig config = project.config;
int bitDepth = ide.workspace.bitDepth;
DirExpression objDir = project.GetObjDir(compiler, config, bitDepth);
SetSymbolsDir(objDir.dir);
+ SetDefaultNameSpace(project.GetDefaultNameSpace(config));
ide.SetPath(true, compiler, config, bitDepth);
delete objDir;
}
SetIncludeDirs(null);
SetSysIncludeDirs(null);
+ SetDefaultNameSpace(null);
}
{
{
Property prop = (Property) curMember;
Class propertyClass = prop.dataTypeClass;
- bool variable = false;
+ bool variable = true;
if(!propertyClass)
propertyClass = prop.dataTypeClass = eSystem_FindClass(this.privateModule, prop.dataTypeString);
ObjectInfo check;
if(!strcmp(name, "this"))
{
- char * name = computed.member.member.string;
- ObjectInfo check;
- for(check = classObject.instances.first; check; check = check.next)
- if(check.name && !strcmp(name, check.name))
- {
- if(prop.Set)
- ((void (*)(void *, void *))(void *)prop.Set)(control, check.instance);
- variable = false;
- break;
- }
+ if(computed.member.member)
+ {
+ char * name = computed.member.member.string;
+ ObjectInfo check;
+ for(check = classObject.instances.first; check; check = check.next)
+ if(check.name && !strcmp(name, check.name))
+ {
+ if(prop.Set)
+ ((void (*)(void *, void *))(void *)prop.Set)(control, check.instance);
+ variable = false;
+ break;
+ }
+ }
}
else
{
{
Map<String, bool> i18nStrings = object.i18nStrings;
bool i18n = true;
- if(i18nStrings && i18nStrings.GetAtPosition(prop.name, false))
+ if(i18nStrings && i18nStrings.GetAtPosition(prop.name, false, null))
i18n = false;
f.Printf("%s\"", i18n ? "$" : "");
if((prop.IsSet && !prop.IsSet(test)) || ((int (*)(void *, void *, void *))(void *)dataType._vTbl[__ecereVMethodID_class_OnCompare])(dataType, &dataForm, &dataTest))
{
- char * string;
+ char * string = null;
char tempString[1024] = "";
SetProperty(prop, test, dataForm);
}
else
{
- Class moduleClass = eSystem_FindClass(this.privateModule, "Module");
+ // Class moduleClass = eSystem_FindClass(this.privateModule, "Module");
// ADDING METHOD HERE
f.Printf("\n ");
f.Printf(")\n");
f.Printf(" %c\n\n", OpenBracket);
- if(control._class._vTbl[method.vid] == moduleClass._vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Module_OnLoad]) // Temp Check for DefaultFunction
+ if(control._class._vTbl[method.vid] == null /*moduleClass._vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Module_OnLoad]*/) // Temp Check for DefaultFunction
{
if(returnType.kind == classType && !strcmp(returnType._class.string, "bool"))
f.Printf(" return true;\n");
{
Class dataType = prop.dataTypeClass;
char tempString[1024] = "";
- char * string;
+ char * string = null;
bool specify = false;
DataMember member;
if(((int (*)(void *, void *, void *))(void *)dataType._vTbl[__ecereVMethodID_class_OnCompare])(dataType, dataForm, dataTest))
{
char tempString[1024] = "";
- char * string;
+ char * string = null;
((void (*)(void *, void *))(void *)prop.Set)(test, dataForm);
if(eClass_IsDerived(classObject.instance._class, dataType) && classObject.instance == dataForm)
{
Map<String, bool> i18nStrings = classObject.i18nStrings;
bool i18n = true;
- if(i18nStrings && i18nStrings.GetAtPosition(prop.name, false))
+ if(i18nStrings && i18nStrings.GetAtPosition(prop.name, false, null))
i18n = false;
f.Printf("\n %s%s = %s\"", specify ? "property::" : "", prop.name, i18n ? "$" : "");
Type dataType = method.dataType;
Type returnType = dataType.returnType;
Type param;
- Class moduleClass = eSystem_FindClass(this.privateModule, "Module");
+ // Class moduleClass = eSystem_FindClass(this.privateModule, "Module");
f.Printf("\n\n");
f.Printf(" ");
f.Printf(")\n");
f.Printf(" %c\n\n", OpenBracket);
- if(test._class._vTbl[method.vid] == moduleClass._vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Module_OnLoad]) // Temp Check for DefaultFunction
+ if(test._class._vTbl[method.vid] == null /*moduleClass._vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Module_OnLoad]*/) // Temp Check for DefaultFunction
{
if(returnType && returnType.kind == classType && !strcmp(returnType._class.string, "bool"))
f.Printf(" return true;\n");
if(subMember.dataType && subMember.dataType.kind == classType && subMember.dataType._class)
{
- char * bitmapName = (char *)eClass_GetProperty(subMember.dataType._class.registered, "icon");
+ char * bitmapName = (char *)(intptr)eClass_GetProperty(subMember.dataType._class.registered, "icon");
if(bitmapName)
{
bitmap = { bitmapName };
if(member.dataType && member.dataType.kind == classType && member.dataType._class)
{
- char * bitmapName = (char *)eClass_GetProperty(member.dataType._class.registered, "icon");
+ char * bitmapName = (char *)(intptr)eClass_GetProperty(member.dataType._class.registered, "icon");
if(bitmapName)
{
bitmap = { bitmapName };
if(member.dataType && member.dataType.kind == classType && member.dataType._class)
{
- char * bitmapName = (char *)eClass_GetProperty(member.dataType._class.registered, "icon");
+ char * bitmapName = (char *)(intptr)eClass_GetProperty(member.dataType._class.registered, "icon");
if(bitmapName)
{
bitmap = { bitmapName };
BitmapResource bitmap = null;
if(symbol.type && symbol.type.kind == classType && symbol.type._class && symbol.type._class)
{
- char * bitmapName = (char *)eClass_GetProperty(symbol.type._class.registered, "icon");
+ char * bitmapName = (char *)(intptr)eClass_GetProperty(symbol.type._class.registered, "icon");
if(bitmapName)
{
bitmap = { bitmapName };
Type dataType = method.dataType;
Type returnType = dataType.returnType;
Type param;
- Class moduleClass = eSystem_FindClass(this.privateModule, "Module");
+ // Class moduleClass = eSystem_FindClass(this.privateModule, "Module");
if(insideDef.prev)
f.Printf("\n\n");
if(!_class ||
(
- (isInstance ? _class : _class.base)._vTbl[method.vid] == moduleClass._vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Module_OnLoad] ||
+ (isInstance ? _class : _class.base)._vTbl[method.vid] == null /*moduleClass._vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Module_OnLoad]*/ ||
(isInstance ? _class : _class.base)._vTbl[method.vid] == DummyMethod)) // Temp Check for DefaultFunction
{
if(returnType && returnType.kind == classType && !strcmp(returnType._class.string, "bool"))
int rowCount;
char tempString[1024];
char * string = null;
- CodePosition idStart, idEnd;
+ CodePosition idStart { };
+ CodePosition idEnd { };
if(membersListShown)
{
}
string[len] = 0;
*/
- int x, y;
+ int x = 0, y;
int len = 0;
EditLine editLine = editBox.line;
bool firstChar = true;