mirror of
https://github.com/KevinMidboe/linguist.git
synced 2026-01-04 00:15:33 +00:00
Merge pull request #2071 from pchaigno/new-grammars
Grammars for 6 languages
This commit is contained in:
21
.gitmodules
vendored
21
.gitmodules
vendored
@@ -552,9 +552,6 @@
|
||||
[submodule "vendor/grammars/liquid.tmbundle"]
|
||||
path = vendor/grammars/liquid.tmbundle
|
||||
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"]
|
||||
path = vendor/grammars/ats.sublime
|
||||
url = https://github.com/steinwaywhw/ats-mode-sublimetext
|
||||
@@ -579,3 +576,21 @@
|
||||
[submodule "vendor/grammars/JSyntax"]
|
||||
path = vendor/grammars/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
|
||||
|
||||
16
grammars.yml
16
grammars.yml
@@ -24,7 +24,7 @@ vendor/grammars/Agda.tmbundle:
|
||||
- source.agda
|
||||
vendor/grammars/Alloy.tmbundle:
|
||||
- source.alloy
|
||||
vendor/grammars/AutoHotkey:
|
||||
vendor/grammars/AutoHotkey/:
|
||||
- source.ahk
|
||||
vendor/grammars/CLIPS-sublime:
|
||||
- source.clips
|
||||
@@ -39,6 +39,12 @@ vendor/grammars/Docker.tmbundle:
|
||||
- source.dockerfile
|
||||
vendor/grammars/Elm.tmLanguage:
|
||||
- source.elm
|
||||
vendor/grammars/G-Code/:
|
||||
- source.LS
|
||||
- source.MCPOST
|
||||
- source.MOD
|
||||
- source.apt
|
||||
- source.gcode
|
||||
vendor/grammars/GDScript-sublime/:
|
||||
- source.gdscript
|
||||
vendor/grammars/Handlebars:
|
||||
@@ -106,6 +112,8 @@ vendor/grammars/SublimeBrainfuck:
|
||||
- source.bf
|
||||
vendor/grammars/SublimeXtend:
|
||||
- source.xtend
|
||||
vendor/grammars/TXL/:
|
||||
- source.txl
|
||||
vendor/grammars/Textmate-Gosu-Bundle:
|
||||
- source.gosu.2
|
||||
vendor/grammars/VBDotNetSyntax:
|
||||
@@ -192,6 +200,8 @@ vendor/grammars/dylan.tmbundle:
|
||||
- source.makegen
|
||||
vendor/grammars/ebundles/Bundles/MSDOS batch file.tmbundle:
|
||||
- source.dosbatch
|
||||
vendor/grammars/ec.tmbundle/:
|
||||
- source.c.ec
|
||||
vendor/grammars/eiffel.tmbundle:
|
||||
- source.eiffel
|
||||
vendor/grammars/elixir-tmbundle:
|
||||
@@ -219,6 +229,8 @@ vendor/grammars/gnuplot-tmbundle:
|
||||
- source.gnuplot
|
||||
vendor/grammars/go-tmbundle:
|
||||
- source.go
|
||||
vendor/grammars/grace-tmbundle/:
|
||||
- source.grace
|
||||
vendor/grammars/gradle.tmbundle:
|
||||
- source.groovy.gradle
|
||||
vendor/grammars/graphviz.tmbundle:
|
||||
@@ -447,6 +459,8 @@ vendor/grammars/sublime-sourcepawn:
|
||||
- source.sp
|
||||
vendor/grammars/sublime-tea:
|
||||
- source.tea
|
||||
vendor/grammars/sublime-text-ox/:
|
||||
- source.ox
|
||||
vendor/grammars/sublime_cobol:
|
||||
- source.acucobol
|
||||
- source.cobol
|
||||
|
||||
@@ -943,7 +943,7 @@ G-code:
|
||||
- .g
|
||||
- .gco
|
||||
- .gcode
|
||||
tm_scope: none
|
||||
tm_scope: source.gcode
|
||||
ace_mode: gcode
|
||||
|
||||
GAMS:
|
||||
@@ -1093,7 +1093,7 @@ Grace:
|
||||
type: programming
|
||||
extensions:
|
||||
- .grace
|
||||
tm_scope: none
|
||||
tm_scope: source.grace
|
||||
ace_mode: text
|
||||
|
||||
Gradle:
|
||||
@@ -2097,7 +2097,7 @@ Ox:
|
||||
- .ox
|
||||
- .oxh
|
||||
- .oxo
|
||||
tm_scope: none
|
||||
tm_scope: source.ox
|
||||
ace_mode: text
|
||||
|
||||
Oxygene:
|
||||
@@ -2922,7 +2922,7 @@ TXL:
|
||||
type: programming
|
||||
extensions:
|
||||
- .txl
|
||||
tm_scope: none
|
||||
tm_scope: source.txl
|
||||
ace_mode: text
|
||||
|
||||
Tcl:
|
||||
@@ -3332,7 +3332,7 @@ eC:
|
||||
extensions:
|
||||
- .ec
|
||||
- .eh
|
||||
tm_scope: none
|
||||
tm_scope: source.c.ec
|
||||
ace_mode: text
|
||||
|
||||
edn:
|
||||
|
||||
337
samples/eC/Designer.ec
Normal file
337
samples/eC/Designer.ec
Normal 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
1
vendor/grammars/G-Code
vendored
Submodule
Submodule vendor/grammars/G-Code added at 81e8b03e3d
1
vendor/grammars/TXL
vendored
Submodule
1
vendor/grammars/TXL
vendored
Submodule
Submodule vendor/grammars/TXL added at c1c98dfa86
1
vendor/grammars/ec.tmbundle
vendored
Submodule
1
vendor/grammars/ec.tmbundle
vendored
Submodule
Submodule vendor/grammars/ec.tmbundle added at b8ec2d32af
1
vendor/grammars/grace-tmbundle
vendored
Submodule
1
vendor/grammars/grace-tmbundle
vendored
Submodule
Submodule vendor/grammars/grace-tmbundle added at c342d35c76
1
vendor/grammars/sublime-text-ox
vendored
Submodule
1
vendor/grammars/sublime-text-ox
vendored
Submodule
Submodule vendor/grammars/sublime-text-ox added at bdd03e09fa
Reference in New Issue
Block a user