Merge pull request #2071 from pchaigno/new-grammars

Grammars for 6 languages
This commit is contained in:
Arfon Smith
2015-02-04 14:14:54 -06:00
9 changed files with 380 additions and 9 deletions

21
.gitmodules vendored
View File

@@ -552,9 +552,6 @@
[submodule "vendor/grammars/liquid.tmbundle"] [submodule "vendor/grammars/liquid.tmbundle"]
path = vendor/grammars/liquid.tmbundle path = vendor/grammars/liquid.tmbundle
url = https://github.com/bastilian/validcode-textmate-bundles url = https://github.com/bastilian/validcode-textmate-bundles
[submodule "vendor/grammars/AutoHotkey"]
path = vendor/grammars/AutoHotkey
url = https://github.com/ahkscript/AutoHotkey
[submodule "vendor/grammars/ats.sublime"] [submodule "vendor/grammars/ats.sublime"]
path = vendor/grammars/ats.sublime path = vendor/grammars/ats.sublime
url = https://github.com/steinwaywhw/ats-mode-sublimetext url = https://github.com/steinwaywhw/ats-mode-sublimetext
@@ -579,3 +576,21 @@
[submodule "vendor/grammars/JSyntax"] [submodule "vendor/grammars/JSyntax"]
path = vendor/grammars/JSyntax path = vendor/grammars/JSyntax
url = https://github.com/bcj/JSyntax url = https://github.com/bcj/JSyntax
[submodule "vendor/grammars/TXL"]
path = vendor/grammars/TXL
url = https://github.com/MikeHoffert/Sublime-Text-TXL-syntax
[submodule "vendor/grammars/G-Code"]
path = vendor/grammars/G-Code
url = https://github.com/robotmaster/sublime-text-syntax-highlighting
[submodule "vendor/grammars/grace-tmbundle"]
path = vendor/grammars/grace-tmbundle
url = https://github.com/zmthy/grace-tmbundle
[submodule "vendor/grammars/sublime-text-ox"]
path = vendor/grammars/sublime-text-ox
url = https://github.com/andreashetland/sublime-text-ox
[submodule "vendor/grammars/AutoHotkey"]
path = vendor/grammars/AutoHotkey
url = https://github.com/ahkscript/SublimeAutoHotkey
[submodule "vendor/grammars/ec.tmbundle"]
path = vendor/grammars/ec.tmbundle
url = https://github.com/ecere/ec.tmbundle

View File

@@ -24,7 +24,7 @@ vendor/grammars/Agda.tmbundle:
- source.agda - source.agda
vendor/grammars/Alloy.tmbundle: vendor/grammars/Alloy.tmbundle:
- source.alloy - source.alloy
vendor/grammars/AutoHotkey: vendor/grammars/AutoHotkey/:
- source.ahk - source.ahk
vendor/grammars/CLIPS-sublime: vendor/grammars/CLIPS-sublime:
- source.clips - source.clips
@@ -39,6 +39,12 @@ vendor/grammars/Docker.tmbundle:
- source.dockerfile - source.dockerfile
vendor/grammars/Elm.tmLanguage: vendor/grammars/Elm.tmLanguage:
- source.elm - source.elm
vendor/grammars/G-Code/:
- source.LS
- source.MCPOST
- source.MOD
- source.apt
- source.gcode
vendor/grammars/GDScript-sublime/: vendor/grammars/GDScript-sublime/:
- source.gdscript - source.gdscript
vendor/grammars/Handlebars: vendor/grammars/Handlebars:
@@ -106,6 +112,8 @@ vendor/grammars/SublimeBrainfuck:
- source.bf - source.bf
vendor/grammars/SublimeXtend: vendor/grammars/SublimeXtend:
- source.xtend - source.xtend
vendor/grammars/TXL/:
- source.txl
vendor/grammars/Textmate-Gosu-Bundle: vendor/grammars/Textmate-Gosu-Bundle:
- source.gosu.2 - source.gosu.2
vendor/grammars/VBDotNetSyntax: vendor/grammars/VBDotNetSyntax:
@@ -192,6 +200,8 @@ vendor/grammars/dylan.tmbundle:
- source.makegen - source.makegen
vendor/grammars/ebundles/Bundles/MSDOS batch file.tmbundle: vendor/grammars/ebundles/Bundles/MSDOS batch file.tmbundle:
- source.dosbatch - source.dosbatch
vendor/grammars/ec.tmbundle/:
- source.c.ec
vendor/grammars/eiffel.tmbundle: vendor/grammars/eiffel.tmbundle:
- source.eiffel - source.eiffel
vendor/grammars/elixir-tmbundle: vendor/grammars/elixir-tmbundle:
@@ -219,6 +229,8 @@ vendor/grammars/gnuplot-tmbundle:
- source.gnuplot - source.gnuplot
vendor/grammars/go-tmbundle: vendor/grammars/go-tmbundle:
- source.go - source.go
vendor/grammars/grace-tmbundle/:
- source.grace
vendor/grammars/gradle.tmbundle: vendor/grammars/gradle.tmbundle:
- source.groovy.gradle - source.groovy.gradle
vendor/grammars/graphviz.tmbundle: vendor/grammars/graphviz.tmbundle:
@@ -447,6 +459,8 @@ vendor/grammars/sublime-sourcepawn:
- source.sp - source.sp
vendor/grammars/sublime-tea: vendor/grammars/sublime-tea:
- source.tea - source.tea
vendor/grammars/sublime-text-ox/:
- source.ox
vendor/grammars/sublime_cobol: vendor/grammars/sublime_cobol:
- source.acucobol - source.acucobol
- source.cobol - source.cobol

View File

@@ -943,7 +943,7 @@ G-code:
- .g - .g
- .gco - .gco
- .gcode - .gcode
tm_scope: none tm_scope: source.gcode
ace_mode: gcode ace_mode: gcode
GAMS: GAMS:
@@ -1093,7 +1093,7 @@ Grace:
type: programming type: programming
extensions: extensions:
- .grace - .grace
tm_scope: none tm_scope: source.grace
ace_mode: text ace_mode: text
Gradle: Gradle:
@@ -2097,7 +2097,7 @@ Ox:
- .ox - .ox
- .oxh - .oxh
- .oxo - .oxo
tm_scope: none tm_scope: source.ox
ace_mode: text ace_mode: text
Oxygene: Oxygene:
@@ -2922,7 +2922,7 @@ TXL:
type: programming type: programming
extensions: extensions:
- .txl - .txl
tm_scope: none tm_scope: source.txl
ace_mode: text ace_mode: text
Tcl: Tcl:
@@ -3332,7 +3332,7 @@ eC:
extensions: extensions:
- .ec - .ec
- .eh - .eh
tm_scope: none tm_scope: source.c.ec
ace_mode: text ace_mode: text
edn: edn:

337
samples/eC/Designer.ec Normal file
View File

@@ -0,0 +1,337 @@
import "ide"
class Designer : DesignerBase
{
~Designer()
{
if(GetActiveDesigner() == this)
{
SetActiveDesigner(null);
}
if(classDesigner)
delete classDesigner;
}
// *** DesignerBase Implementation ***
void ModifyCode()
{
codeEditor.ModifyCode();
}
void UpdateProperties()
{
codeEditor.DesignerModifiedObject();
}
void CodeAddObject(Instance instance, ObjectInfo * object)
{
codeEditor.AddObject(instance, object);
}
void SheetAddObject(ObjectInfo object)
{
codeEditor.sheet.AddObject(object, object.name, typeData, true); //className, true);
}
void AddToolBoxClass(Class _class)
{
((IDEWorkSpace)master).toolBox.AddControl(_class);
}
void AddDefaultMethod(Instance instance, Instance classInstance)
{
Class _class = instance._class;
Method defaultMethod = null;
for( ; _class; _class = _class.base)
{
Method method;
int minID = MAXINT;
for(method = (Method)_class.methods.first; method; method = (Method)((BTNode)method).next)
{
if(method.type == virtualMethod)
{
if(!method.dataType)
method.dataType = ProcessTypeString(method.dataTypeString, false);
if(method.vid < minID && (instance == classInstance || (method.dataType.thisClass && eClass_IsDerived(classInstance._class, method.dataType.thisClass.registered))))
{
defaultMethod = method;
minID = method.vid;
}
}
}
if(defaultMethod)
break;
}
codeEditor.AddMethod(defaultMethod);
}
bool ObjectContainsCode(ObjectInfo object)
{
// Confirmation if control contains code
if(object.instCode)
{
MembersInit members;
if(object.instCode.members)
{
for(members = object.instCode.members->first; members; members = members.next)
{
if(members.type == methodMembersInit)
{
//if(!Code_IsFunctionEmpty(members.function))
{
return true;
}
}
}
}
}
return false;
}
void DeleteObject(ObjectInfo object)
{
if(codeEditor)
codeEditor.DeleteObject(object);
}
void RenameObject(ObjectInfo object, const char * name)
{
if(object && (name || !object.classDefinition))
codeEditor.RenameObject(object, name);
}
bool FindObject(Instance * object, const char * string)
{
ObjectInfo classObject;
for(classObject = codeEditor.classes.first; classObject; classObject = classObject.next)
{
ObjectInfo check;
if(classObject.name && !strcmp(string, classObject.name))
{
*object = classObject.instance;
break;
}
for(check = classObject.instances.first; check; check = check.next)
{
if(check.name && !strcmp(string, check.name))
{
*object = check.instance;
break;
}
}
if(check)
return true;
}
return false;
}
void SelectObjectFromDesigner(ObjectInfo object)
{
codeEditor.SelectObjectFromDesigner(object);
}
borderStyle = sizable;
isActiveClient = true;
hasVertScroll = true;
hasHorzScroll = true;
hasClose = true;
hasMaximize = true;
hasMinimize = true;
text = $"Designer";
menu = Menu { };
anchor = Anchor { left = 300, right = 150, top = 0, bottom = 0 };
ToolBox toolBox;
CodeEditor codeEditor;
Menu fileMenu { menu, $"File", f };
MenuItem fileSaveItem
{
fileMenu, $"Save", s, ctrlS;
bool NotifySelect(MenuItem selection, Modifiers mods)
{
return codeEditor.MenuFileSave(selection, mods);
}
};
MenuItem fileSaveAsItem
{
fileMenu, $"Save As...", a;
bool NotifySelect(MenuItem selection, Modifiers mods)
{
return codeEditor.MenuFileSaveAs(selection, mods);
}
};
bool debugClosing;
bool OnClose(bool parentClosing)
{
if(!parentClosing)
{
if(codeEditor && codeEditor.inUseDebug && !debugClosing)
{
debugClosing = true;
closing = false;
if(CloseConfirmation(false))
{
visible = false;
if(modifiedDocument)
OnFileModified({ modified = true }, null);
}
debugClosing = false;
return false;
}
if(codeEditor && !codeEditor.closing && !debugClosing)
{
if(!codeEditor.visible)
{
if(!codeEditor.Destroy(0))
return false;
else
codeEditor = null;
}
else
{
visible = false;
return false;
}
}
}
return true;
}
bool OnActivate(bool active, Window previous, bool * goOnWithActivation, bool direct)
{
if(active)
{
codeEditor.EnsureUpToDate();
codeEditor.fixCaret = true;
/*
if(classDesigner)
classDesigner.Activate();
*/
}
return true;
}
bool OnKeyHit(Key key, unichar ch)
{
return codeEditor.sheet.OnKeyHit(key, ch);
}
watch(modifiedDocument)
{
fileSaveItem.disabled = !modifiedDocument && codeEditor.fileName;
};
// *** METHODS ACCESSED FROM PROPERTY SHEET/TOOLBOX/CODE EDITOR ***
void Reset()
{
if(classDesigner)
{
classDesigner.Reset();
classDesigner.SelectObject(null, null);
classDesigner.Destroy(0);
delete classDesigner;
}
}
void FillToolBox()
{
if(this && classDesigner)
classDesigner.ListToolBoxClasses(this);
}
void SelectObject(ObjectInfo object, Instance instance)
{
ClassDesignerBase classDesigner = this.classDesigner;
#ifdef _DEBUG
if(instance && instance._class.module.application != codeEditor.privateModule)
printf("warning: SelectObject: instance._class.module.application != codeEditor.privateModule\n");
#endif
if(!classDesigner || !instance || classDesigner._class != (Class)eInstance_GetDesigner(instance))
{
if(classDesigner)
{
classDesigner.SelectObject(null, null);
classDesigner.Destroy(0);
classDesigner = null;
delete this.classDesigner;
}
if(instance)
{
this.classDesigner = classDesigner = eInstance_New(eInstance_GetDesigner(instance));
incref classDesigner;
//if(!classDesigner.parent)
{
classDesigner.parent = this;
classDesigner.anchor = Anchor { left = 0, right = 0, top = 0, bottom = 0 };
}
classDesigner.Create();
}
}
// Call class editor SelectObject
if(classDesigner)
classDesigner.SelectObject(object, instance);
}
void AddObject()
{
// Call class editor AddObject
if(classDesigner)
classDesigner.AddObject();
if(visible)
Activate();
else
codeEditor.Activate();
}
void CreateObject(Instance instance, ObjectInfo object, bool isClass, Instance iclass)
{
subclass(ClassDesignerBase) designerClass = eInstance_GetDesigner(instance);
// Call class editor CreateObject
if(designerClass)
designerClass.CreateObject(this, instance, object, isClass, iclass);
}
void ::PostCreateObject(Instance instance, ObjectInfo object, bool isClass, Instance iclass)
{
subclass(ClassDesignerBase) designerClass = eInstance_GetDesigner(instance);
// Call class editor PostCreateObject
if(designerClass)
designerClass.PostCreateObject(instance, object, isClass, iclass);
}
void ::DroppedObject(Instance instance, ObjectInfo object, bool isClass, Instance iclass)
{
subclass(ClassDesignerBase) designerClass = eInstance_GetDesigner(instance);
// Call class editor PostCreateObject
if(designerClass)
designerClass.DroppedObject(instance, object, isClass, iclass);
}
void PrepareTestObject(Instance instance)
{
subclass(ClassDesignerBase) designerClass = eInstance_GetDesigner(instance);
if(designerClass)
designerClass.PrepareTestObject(this, instance);
}
void ::DestroyObject(Instance instance)
{
subclass(ClassDesignerBase) designerClass = eInstance_GetDesigner(instance);
if(designerClass)
designerClass.DestroyObject(instance);
}
void ::FixProperty(Property prop, Instance instance)
{
subclass(ClassDesignerBase) designerClass = eInstance_GetDesigner(instance);
if(designerClass)
designerClass.FixProperty(prop, instance);
}
}

1
vendor/grammars/G-Code vendored Submodule

Submodule vendor/grammars/G-Code added at 81e8b03e3d

1
vendor/grammars/TXL vendored Submodule

Submodule vendor/grammars/TXL added at c1c98dfa86

1
vendor/grammars/ec.tmbundle vendored Submodule