From 00874b240310c90d22810241e24fd72433f606aa Mon Sep 17 00:00:00 2001 From: davemds Date: Fri, 8 Aug 2014 21:51:11 +0200 Subject: [PATCH] Geany EDC: full edc support Highlight, autocomplete (snippets) and help tooltip for the whole edc syntax --- filedefs/filetypes.Edje.conf | 12 +- snippets.conf | 221 +++++++++++++++++- tags/edje.edc.tags | 427 +++++++++++++++++++++++++++++++++++ templates/files/main.edc | 27 +++ 4 files changed, 678 insertions(+), 9 deletions(-) create mode 100644 tags/edje.edc.tags create mode 100644 templates/files/main.edc diff --git a/filedefs/filetypes.Edje.conf b/filedefs/filetypes.Edje.conf index b69b89a..d0dc742 100644 --- a/filedefs/filetypes.Edje.conf +++ b/filedefs/filetypes.Edje.conf @@ -1,6 +1,7 @@ # # Edje (edc) filetype definition for Geany. # +# This file enable hilight of edc blocks and properties # # Usage: # @@ -15,17 +16,14 @@ [styling=C] [keywords] - -# primary will draw in blu and have precedence on secondary +# primary will draw in BLU (with default colors) and have precedence on secondary # used for edc properties, like "name:" or "state:" -primary=item font tag base external name type state min max normal color color2 color3 clip_to signal source action transition target scale align relative offset inherit to border aspect aspect_preference align effect size mouse_events repeat_events ellipsis fixed layout padding visible to_x to_y middle smooth x y confine alias color_class border_scale_by border_scale after entry_mode select_mode multiline source source2 source3 source4 source5 source6 text_class text_source ignore_flags cursor_mode in +primary=item file font tag image base_scale tone inherit_only broadcast_signal target_groups script_only script_recursion base external name type state min max normal color color2 color3 clip_to signal source action transition target scale align relative offset inherit to border aspect aspect_preference align effect size mouse_events repeat_events ellipsis fixed layout padding visible to_x to_y middle smooth x y confine alias color_class border_scale_by border_scale after entry_mode select_mode multiline source source2 source3 source4 source5 source6 text_class text_source ignore_flags cursor_mode in orientation program_source vertical horizontal program_remove part_remove physics_body insert_before insert_after pointer_mode precise_is_inside use_alternate_font_metrics access events threshold spread prefer weight position span limit minmul step tween scale_hint origin repch size_range fit filter homogeneous backface_cull depth z light_on hardness density material sleep damping ignore_part_pos friction restitution mass linear angular center alpha perspective_on on light perspective center zplane focal int double string bool choice gravity rate -# secondary will draw in red (with default colors) +# secondary will draw in RED (with default colors) # used for edc blocks, like "parts{}" or "part{}" -secondary=data images image fonts styles style externals collections group script parts part description programs program rel1 rel2 box text fill dragable +secondary=data images set fonts styles style sounds sample vibrations externals collections group script parts part description programs program rel1 rel2 box text fill dragable limits items table physics movement_freedom faces face map rotation params link world -# these are the Doxygen keywords -# docComment=addtogroup [lexer_properties] styling.within.preprocessor=1 diff --git a/snippets.conf b/snippets.conf index 6be2634..f85689a 100644 --- a/snippets.conf +++ b/snippets.conf @@ -11,11 +11,228 @@ # NOTE: default snippets file (with docs) at: /usr/share/geany/snippets.conf # + + [Edje] +# blocks +collections=collections {\n\t%cursor% \n} group=group { name: "%cursor%";\n\tparts {\n\t}\n} -part=part { name: "%cursor%";\n\ttype: RECT;\n\tdescription { state: "default" 0.0;\n\t}\n} -desc=description { state: "default" 0.0;\n\t%cursor%\n} +parts=parts {\n\t%cursor% \n} rel1=rel1 {\n\tto: "%cursor%";\n\trelative: 0.0 0.0;\n\toffset: 0 0;\n} rel2=rel2 {\n\tto: "%cursor%";\n\trelative: 1.0 1.0;\n\toffset: -1 -1;\n} +fill=fill {\n\tsmooth: 1;\n\ttype: TILE;\n\torigin {\n\t\trelative: %cursor%0.0 0.0;\n\t\toffset: 0 0;\n\t}\n\tsize {\n\t\trelative: 1.0 1.0;\n\t\toffset: -1 -1;\n\t}\n} +origin=origin {\n\trelative: 0.0 0.0;\n\toffset: 0 0;\n} +text=text {\n\ttext: "";\n\tfont: "%cursor%";\n\tsize: 12;\n\ttext_class: "";\n\tmin: 1 0;\n\tellipsis: -1;\n} +script=script {\n\t%cursor%\n} + +# parts +part=part { name: "%cursor%";\n\ttype: RECT;\n\tdescription { state: "default" 0.0;\n\t\t\n\t}\n} RECT=part { name: "%cursor%";\n\ttype: RECT;\n\tdescription { state: "default" 0.0;\n\t}\n} IMAGE=part { name: "%cursor%";\n\tdescription { state: "default" 0.0;\n\t\timage {\n\t\t\tnormal: "";\n\t\t\tborder: left right top bottom;\n\t\t}\n\t}\n} + +# colors +color_class=color_class {\n\tname: "%cursor%";\n\tcolor: 200 200 200 255;\n\tcolor2: 200 200 200 255;\n\tcolor3: 200 200 200 255; \n} + +# text styles +styles=styles {\n\t%cursor%\n} +style=style {\n\tname: "%cursor%";\n\tbase: "font=Sans font_size=12 color=#fff wrap=word";\n\ttag: "b" "+ font_weight=Bold";\n} +base=base: "font=%cursor%Sans font_size=12 color=#fff wrap=word"; +tag=tag: "%cursor%b" "+ font_weight=Bold"; + +# externals +externals=externals {\n\texternal: "%cursor%";\n} +external=external: "%cursor%"; + +# sounds +sounds=sounds {\n\t%cursor%\n} +sample=sample {\n\tname: "%cursor%" COMP;\n\tsource: "sound_file.wav";\n} +tone=tone: "%cursor%" 440; +vibrations=vibrations {\n\t%cursor% \n} + +# images +images=images {\n\timage: "%cursor%.png" COMP;\n} +image=image: "%cursor%.png" COMP; +border=border: %cursor%left right top bottom; +size=size: %cursor%minw minh maxw maxh; +border_scale_by=border_scale_by: %cursor%0.0; +set=set {\n\tname: "%cursor%";\n\timage {\n\t\timage: "filename1.png" LOSSY 90;\n\t\tsize: minw minh maxw maxh;\n\t}\n\timage {\n\t\timage: "filename2.png" LOSSY 90;\n\t\tsize: minw minh maxw maxh;\n\t}\n} + +# fonts +fonts=fonts {\n\tfont: "%cursor%.otf" "FontAlias";\n} +font=font: "%cursor%.otf" "FontAlias"; + + +# data +data=data {\n\titem: "%cursor%key" "value";\n\tfile: "key" "filename.ext"\n} +item=item: "%cursor%key" "value"; +file=file: "%cursor%key" "filename.ext"; + +# collections +base_scale=base_scale: %cursor%1.0; + +# group +inherit_only=inherit_only: %cursor%1; +target_group=target_group: "%cursor%" "%cursor%" "%cursor%"; +script_only=script_only: %cursor%on; +script_recursion=script_recursion: %cursor%1; +alias=alias: "%cursor%"; +min=min: %cursor%width height; +max=max: %cursor%width height; +broadcast_signal=broadcast_signal: on; +orientation=orientation: LTR; +program_source=program_source: "%cursor%"; +# group.limits +limits=limits {\n\tvertical: "%cursor%" height_barrier;\n\thorizontal: "limit_name" width_barrier;\n} +vertical=vertical: "%cursor%" height_barrier; +horizontal=horizontal: "%cursor%" width_barrier; + +# part +type=type: %cursor%RECT; +program_remove=program_remove: "%cursor%" "%cursor%" "%cursor%"; +part_remove=part_remove: "%cursor%" "%cursor%" "%cursor%"; +physics_body=%cursor%RIGID_BOX; +insert_before=insert_before: "%cursor%"; +insert_after=insert_after: "%cursor%"; +mouse_events=mouse_events: 0;\n +repeat_events=repeat_events: 0;\n +scale=scale: 1;\n +ignore_flags=ignore_flags: ON_HOLD;\n +pointer_mode=pointer_mode: NOGRAB;\n +precise_is_inside=precise_is_inside: 1;\n +use_alternate_font_metrics=use_alternate_font_metrics: 1;\n +clip_to=clip_to: "%cursor%"; +source=source: "%cursor%"; +source2=source2: "%cursor%"; +source3=source3: "%cursor%"; +source4=source4: "%cursor%"; +source5=source5: "%cursor%"; +source6=source6: "%cursor%"; +effect=effect: %cursor%SHADOW; +entry_mode=entry_mode: %cursor%EDITABLE; +select_mode=select_mode: %cursor%EXPLICIT; +cursor_mode=cursor_mode: %cursor%BEFORE; +multiline=multiline: 0;\n +access=access: 1;\n + +name=name: "%cursor%"; +color=color: 200 200 200 255; +color2=color2: 200 200 200 255; +color3=color3: 200 200 200 255; + +# description +description=description { state: "%cursor%" 0.0;\n\t\n} +desc=description { state: "%cursor%" 0.0;\n\t\n} +inherit=inherit: "%cursor%default" 0.0; +state=state: "%cursor%" 0.0; +visible=visible: 0;\n +limit=limit: %cursor%; +align=align: %cursor%0.0 0.0; +fixed=fixed: 1 1;\n +minmul=minmul: %cursor%1.0 1.0; +step=step: %cursor%0 0; +aspect=aspect: %cursor%vmin vmax;\naspect_preference: BOTH; +aspect_preference=aspect_preference: BOTH;\n +offset=offset: %cursor%0 0; +to=to: "%cursor%"; +to_x=to_x: "%cursor%"; +to_y=to_y: "%cursor%"; +normal=normal: "%cursor%.png" COMP; +tween=tween: "%cursor% .png"; +middle=middle: NONE;\n +border_scale=border_scale: 1;\n +scale_hint=scale_hint: %cursor%STATIC; +ellipsis=ellipsis: -1; +repch=repch: "%cursor%*"; +size_range=size_range: 1.2 1.2; +fit=fit: 1 0; +text_source=text_source: "%cursor%"; +filter=filter: "%cursor%"; + +# dragable +dragable=dragable {\n\tconfine: "%cursor%";\n\tevents: "another dragable part";\n\tx: 0 0 0;\n\ty: 0 0 0;\n} +x=x: 1 0 0;\n +y=y: 1 0 0;\n +confine=confine: "%cursor%"; +threshold=threshold: "%cursor%"; +events=events: "%cursor%"; +relative=relative: %cursor%0.0 0.0; + +# box/table +box=box {\n\tlayout: "%cursor%vertical";\n\tpadding: 0 2;\n\talign: 0.5 0.5;\n\tmin: 0 0;\n\titems {\n\t\titem {\n\t\t\ttype: GROUP;\n\t\t\tsource: "";\n\t\t}\n\t}\n} +table=table {\n\thomogeneous: TABLE;\n\tpadding: 0 2;\n\talign: 0.5 0.5;\n\tmin: 0 0;\n\titems {\n\t\t%cursor%\n\t}\n} +layout=layout: "%cursor%"; +homogeneous=homogeneous: %cursor%TABLE; +padding=padding: %cursor%0 0; +# box/table items +spread=spread: %cursor%width height; +prefer=prefer: %cursor%width height; +# padding=padding: %cursor%left right top bottom; (collide) +position=position: %cursor%col row; +span=span: %cursor%col row; +weight=weight: %cursor%x_val y_val; + +# map +center=center: "%cursor%"; +alpha=alpha: 1; +perspective_on=perspective_on: 1; +smooth=smooth: 1; +on=on: 1; +light=light: "%cursor%"; +perspective=perspective: "%cursor%"; +center=center: "%cursor%"; +backface_cull=backface_cull: 1; +perspective=perspective {\n\tzplane: 0;\n\tfocal: 1000;\n} +zplane=zplane: %cursor%; +focal=focal: %cursor%; + +# physics (obj) +physics=physics {\n\tignore_part_pos: 1;\n\tmass: %cursor%5.31;\n\tfriction: 0.5;\n\trestitution: 0.82;\n\tdamping: 0.4 0.24;\n\tsleep: 32 18.9;\n\tmaterial: IRON;\n\tdensity: 3.2;\n\thardness: 0.42;\n\tlight_on: 1;\n\tz: -15;\n\tdepth: 30;\n\tmovement_freedom { }\n\tfaces { }\n} +mass=mass: %cursor%; +restitution=restitution: %cursor%; +friction=friction: %cursor%; +ignore_part_pos=ignore_part_pos: %cursor%0; +damping=damping: %cursor%linear angular; +sleep=sleep: %cursor%linear angular; +material=material: %cursor%CONCRETE; +density=density: %cursor%; +hardness=hardness: %cursor%; +light_on=light_on: 1; +z=z: %cursor%; +depth=depth: %cursor%; +backface_cull=backface_cull: 1; +movement_freedom=movement_freedom {\n\tlinear: %cursor%1 1 0;\n\tangular: 0 0 1;\n} +linear=linear: %cursor%1 1 0; +angular=angular: %cursor%0 0 1; +faces=faces {\n\tface {\n\t\ttype: BOX_FRONT;\n\t\tsource: "%cursor%";\n\t}\n} +face=face {\n\ttype: BOX_FRONT;\n\tsource: "%cursor%";\n} +# physics (world) +world=world {\n\tgravity: 0 294 0;\n\trate: 30;\n\tz: -50;\n\tdepth: 100;\n} +gravity=gravity: %cursor%0 0 0; +rate=rate: %cursor%30; +depth=depth: %cursor%100; +#z=z: %cursor%-50; (collide) + +# external params +params=params {\n\t%cursor%\n} +int=int: "%cursor%" 0; +double=double: "%cursor%" 0.0; +string=string: "%cursor%" "%cursor%"; +bool=bool: "%cursor%" 1; +choice=choice: "%cursor%" "%cursor%"; + +# programs +link=link {\n\tbase: "edje,signal" "edje";\n\ttransition: LINEAR 0.2;\n\tin: 0.5 0.1;\n\tafter: "some_program";\n} +programs=programs {\n\tprogram { name: "%cursor%";\n\t\tsignal: "";\n\t\tsource: "";\n\t\taction: STATE_SET "default" 0.0;\n\t\ttransition: LINEAR 1.0;\n\t\ttarget: "";\n\t}\n} +program=program { name: "%cursor%";\n\tsignal: "";\n\tsource: "";\n\taction: STATE_SET "default" 0.0;\n\ttransition: LINEAR 1.0;\n\ttarget: "";\n} +prog=program { name: "%cursor%";\n\tsignal: "";\n\tsource: "";\n\taction: STATE_SET "default" 0.0;\n\ttransition: LINEAR 1.0;\n\ttarget: "";\n} +sequence=sequence {\n\t%cursor% \n} +signal=signal: "%cursor%"; +source=source: "%cursor%"; +filter=filter: "%cursor%" "%cursor%"; +in=in: %cursor%1.0 0.0; +action=action: STATE_SET "%cursor%" 0.0; +transition=transition: LINEAR 1.0; +target=target: "%cursor%"; +target_groups=target_groups: "%cursor%" "%cursor%"; +after=after: "%cursor%"; +api=api: "%cursor%" "%cursor%"; diff --git a/tags/edje.edc.tags b/tags/edje.edc.tags new file mode 100644 index 0000000..003ca22 --- /dev/null +++ b/tags/edje.edc.tags @@ -0,0 +1,427 @@ +# format=pipe +# +# Edje EDC tags for autocomplate & help-tooltip for Geany +# +# Note: actually the properties help string only show when you type "(" +# so you need to type "image(" to show the help +# +# Usage: copy this file to "~/.config/geany/tags/" folder (or just link it). +# +# Format: +# tag_name||: [param1] [param2]... | +# or: +# tag_name||disambiguation: [param1] [param2]... | +# +# +# Strangness: +# * "alias" help do not work +# * "limits" autocomp do not work +# * "params" autocomp do not work +# * "params.bool" help do not work +# * "map.center" autocomp do not work +# * "part.type" autocomp/help do not work +# * "item.position" autocomp/help do not work +# * "part.repeat_events" autocomp is strange +# +############################################################################### +########### BLOCKS ########################################################## +collections +############################################################################### +########### EXTERNALS ####################################################### +externals +external||: "ext name"| +############################################################################### +########### fonts ########################################################### +fonts +font||fonts.font: "font file" "font alias"| +############################################################################### +########### DATA ############################################################ +data +item||: "key" "value"| +file||: "key" "filename.ext"| +############################################################################### +########### COLLECTIONS ##################################################### +base_scale||: [scale val]| +############################################################################### +########### images.image #################################################### +images +image||: [file name] [ RAW / COMP / LOSSY / LOSSY_ETC1 / LOSSY_ETC2 / USER ] (comp level)| +RAW +COMP +LOSSY +LOSSY_ETC1 +LOSSY_ETC2 +USER +border||: [left] [right] [top [bottom]| +border_scale_by||: [0.0 or bigger] +size||: [minw] [minh] [maxw] [maxh]| +############################################################################### +########### COLORS ########################################################## +color_class +color_classes +color||: [red] [green] [blue] [alpha]| +color2||: [red] [green] [blue] [alpha]| +color3||: [red] [green] [blue] [alpha]| +############################################################################### +########### TEXT STYLES ##################################################### +styles +style +base||: [style properties string]| +tag||: [tag name] [style properties string]| +############################################################################### +########### SOUNDS ########################################################## +sounds +vibrations +sample +tone||: [tone name] [frequency]| +name||sounds.sample.name: [sample name] [compression type] (quality) +############################################################################### +########### GROUP ########################################################### +inherit||group.inherit: [parent group name]| +inherit_only||: [1 or 0]| +target_group||: [name] [part/program1] [part/program2] ...| +script_only||: [on/off]| +script_recursion||: [1/0] +alias||: [additional name]| +min||: [width] [height]| +max||: [width] [height]| +broadcast_signal||: [on/off]| +orientation||: [ AUTO / LTR / RTL ]| +AUTO +LTR +RTL +program_source||: [source name]| +############################################################################### +########### GROUP.LIMITS #################################################### +limits +vertical||: [name] [height barrier]| +horizontal||: [name] [width barrier]| +############################################################################### +########### PART ############################################################ +parts +part +name||part.name: [part name]| +type||: [ RECT / TEXT / IMAGE / SWALLOW / TEXTBLOCK / GROUP / BOX / TABLE / EXTERNAL / PROXY / SPACER ]| +NONE +RECT +TEXT +IMAGE +SWALLOW +TEXTBLOCK +GROUP +BOX +TABLE +EXTERNAL +PROXY +SPACER +mouse_events||: [1 or 0]| +repeat_events||: [1 or 0]| +scale||: [1 or 0]| +inherit||part.inherit: [part name]| +pointer_mode||: [ AUTOGRAB / NOGRAB ]| +AUTOGRAB +NOGRAB +precise_is_inside||: [1 or 0]| +use_alternate_font_metrics||: [1 or 0]| +program_remove||: [program name] [program name] [program name] ...| +part_remove||: [part name] [part name] [part name] ...| +physics_body||: [ NONE / RIGID_BOX / RIGID_SPHERE / RIGID_CYLINDER / SOFT_BOX / SOFT_SPHERE / SOFT_CYLINDER / CLOTH / BOUNDARY_TOP / BOUNDARY_BOTTOM / BOUNDARY_RIGHT / BOUNDARY_LEFT / BOUNDARY_FRONT / BOUNDARY_BACK ] +NONE +RIGID_BOX +RIGID_SPHERE +RIGID_CYLINDER +SOFT_BOX +SOFT_SPHERE +SOFT_CYLINDER +CLOTH +BOUNDARY_TOP +BOUNDARY_BOTTOM +BOUNDARY_RIGHT +BOUNDARY_LEFT +BOUNDARY_FRONT +BOUNDARY_BACK +insert_before||: [another part's name]| +insert_after||: [another part's name]| +ignore_flags||: [FLAG] ... (flag can be NONE or ON_HOLD)| +NONE +ON_HOLD +clip_to||: [another part's name]| +source||: [another group's name]| +source2||: [another group's name]| +source3||: [another group's name]| +source4||: [another group's name]| +source5||: [another group's name]| +source6||: [another group's name]| +effect||: [ PLAIN / OUTLINE / SOFT_OUTLINE / SHADOW / SOFT_SHADOW / OUTLINE_SHADOW / OUTLINE_SOFT_SHADOW / FAR_SHADOW / FAR_SOFT_SHADOW / GLOW ] (DIRECTION) +NONE +PLAIN +OUTLINE +SOFT_OUTLINE +SHADOW +SOFT_SHADOW +OUTLINE_SHADOW +OUTLINE_SOFT_SHADOW +FAR_SHADOW +FAR_SOFT_SHADOW +GLOW +#part_effect (param2) +BOTTOM_RIGHT +BOTTOM +BOTTOM_LEFT +LEFT +TOP_LEFT +TOP +TOP_RIGHT +RIGHT +entry_mode||: [ NONE / PLAIN / EDITABLE / PASSWORD ]|รน +NONE +PLAIN +EDITABLE +PASSWORD +select_mode||: [ DEFAULT / EXPLICIT ]| +DEFAULT +EXPLICIT +cursor_mode||: [ UNDER / BEFORE ]| +UNDER +BEFORE +multiline||: [1 or 0]| +access||: [1 or 0]| +############################################################################### +########### DESCRIPTION ##################################################### +description +inherit||description.inherit: [another desc name] [another desc index]| +state||: [name] [index]| +visible||: [0 or 1]| +limit||: [ NONE / WIDTH / HEIGHT / BOTH ]| +NONE +WIDTH +HEIGHT +BOTH +align||: [X axis] [Y axis]| +fixed||: [width] [height]| +color_class||description.color_class: [color class name]| +minmul||: [width multipler] [height multiplier]| +step||: step [width] [height]| +aspect||: [min] [max]| +aspect_preference||: [ NONE / BOTH / VERTICAL / HORIZONTAL / SOURCE ]| +NONE +VERTICAL +HORIZONTAL +BOTH +SOURCE +rel1 +rel2 +relative||: [X axis] [Y axis]| +offset||: [X axis] [Y axis]| +to||: [another part name]| +to_x||: [another part name]| +to_y||: [another part name]| +############# DESCRIPTION.IMAGE ############################################# +normal||: [image filename] +tween||: [image filename] +border||image.border: [left] [right] [top] [bottom]| +middle||: [ NONE / DEFAULT / SOLID ]| +NONE +DEFAULT +SOLID +border_scale||: [ 1 / 0 ]| +border_scale_by||: [value]| +scale_hint||: [ 0 / NONE / DYNAMIC / STATIC ]| +NONE +DYNAMIC +STATIC +smooth||: [0 or 1]| +############# DESCRIPTION.TEXT ############################################### +text||text.text: [a string of text]| +font||text.font: [font alias]| +size||text.size: [font size in pt]| +size_range||: [font min size in points (pt)] [font max size in points (pt)]| +fit||: [horizontal] [vertical]| +min||text.min: [horizontal] [vertical]| +max||text.min: [horizontal] [vertical]| +align||text.align: [horizontal] [vertical]| +source||text.source: [another TEXT part's name]| +text_source||: [another TEXT part's name]| +ellipsis||: [point of balance]| +filter||: [filter program as a string]| +text_class||: [class name]| +color_class||part.color_class: +repch||: [the replacement character string]| +type||image.fill.type: [ SCALE / TILE ] +SCALE +TILE +############################################################################### +########### DRAGABLE ######################################################## +dragable +x||: [enable/disable] [step] [count]| +y||: [enable/disable] [step] [count]| +confine||: [another part's name]| +threshold||: [another part's name]| +events||: [another dragable part's name]| +############################################################################### +########### BOX/TABLE ####################################################### +layout||: [ horizontal / vertical / horizontal_homogeneous / vertical_homogeneou / horizontal_max / vertical_max / horizontal_flow / vertical_flow / stack / custom ]| +homogeneous||: [ NONE / TABLE / ITEM ]| +NONE +TABLE +ITEM +padding||box.pagging: [horizontal] [vertical]| +############################################################################### +########### BOX / TABLE ITEMS ############################################### +type||: [ GROUP ]| +GROUP +name||group.name: [name for the object]| +source||: [a group name]| +min||: [width] [height]| +max||: [width] [height]| +spread||: [width] [height]| +prefer||: [width] [height]| +padding||box.item.padding: [left] [right] [top] [bottom]| +align||box.item.align: [x] [y] +weight||: [x] [y]| +position||: [col] [row]| +span||: [col] [row]| +aspect||box.item.aspect: [w] [h]| +aspect_mode||: [NONE / NEITHER / HORIZONTAL / VERTICAL / BOTH ]| +NONE +NEITHER +HORIZONTAL +VERTICAL +BOTH +options||: [extra options]| +############################################################################### +########### PHYSICS ######################################################### +physics + +mass||: [body's mass in kilograms]| +restitution||: [body's restitution]| +friction||: [body's friction]| +ignore_part_pos||: [1 or 0]| +damping||: [linear damping] [angular damping]| +sleep||: [linear sleeping threshold] [angular sleeping threshold]| +material||: [ CUSTOM / CONCRETE / IRON / PLASTIC / POLYSTYRENE / RUBBER / WOOD ]| +CUSTOM +CONCRETE +IRON +PLASTIC +POLYSTYRENE +RUBBER +WOOD +density||: [body's material density]| +hardness||: [ 0.0 - 1.0 ]| +light_on||: [1 or 0]| +z||: [body position in z axis]| +depth||: [body's depth]| +backface_cull||: [1 or 0]| +movement_freedom +linear||: [x-axis (1/0)] [y-axis (1/0)] [z-axis (1/0)] +angular||: [x-axis (1/0)] [y-axis (1/0)] [z-axis (1/0)] +faces +face +type||physics.face.type: [ BOX_MIDDLE_FRONT / BOX_MIDDLE_BACK / BOX_FRONT / BOX_BACK / BOX_LEFT / BOX_RIGHT / BOX_TOP / BOX_BOTTOM / CLOTH_FRONT / CLOTH_BACK / CYLINDER_MIDDLE_FRONT / CYLINDER_MIDDLE_BACK / CYLINDER_FRONT / CYLINDER_BACK / CYLINDER_CURVED / SPHERE_FRONT / SPHERE_BACK ]| +BOX_MIDDLE_FRONT +BOX_MIDDLE_BACK +BOX_FRONT +BOX_BACK +BOX_LEFT +BOX_RIGHT +BOX_TOP +BOX_BOTTOM +CLOTH_FRONT +CLOTH_BACK +CYLINDER_MIDDLE_FRONT +CYLINDER_MIDDLE_BACK +CYLINDER_FRONT +CYLINDER_BACK +CYLINDER_CURVED +SPHERE_FRONT +SPHERE_BACK +############################################################################### +########### PHYSICS (WORLD) ################################################# +gravity||: [x-axis] [y-axis] [z-axis]| +rate||: [rate pixels / meter]| +depth||: [depth in pixels]| +z||: [world's front border position]| +############################################################################### +########### MAP ############################################################# +map +perspective||: [another part's name]| +light||: [another part's name]| +on||: [1 or 0]| +smooth||: [1 or 0]| +alpha||: [1 or 0]| +backface_cull||: [1 or 0]| +perspective_on||: [1 or 0]| +color||: [point] [red] [green] [blue] [alpha]| +rotation +center||: [another part's name]| +x||: [X degrees]| +y||: [Y degrees]| +z||: [Z degrees]| +zplane||: [unscaled Z value]| +focal||: [distance]| +############################################################################### +########### EXTENAL PARAMS ################################################## +params +int||: [param_name] [int_value]| +double||: [param_name] [double_value]| +string||: [param_name] [string_value]| +bool||: [param_name] [bool_value]| +choice||: [param_name] [choice_string]| +############################################################################### +########### PROGRAMS ######################################################## +programs +program +name||program.name: [program name]| +signal||: [signal name]| +source||: [source name]| +filter||: [part] [state]| +in||: [from] [range]| +action||: [ STATE_SET / ACTION_STOP / SIGNAL_EMIT / ... ] (param1) (param2) (param3) (param4)| +STATE_SET +ACTION_STOP +SIGNAL_EMIT +DRAG_VAL_SET +DRAG_VAL_STEP +DRAG_VAL_PAGE +SCRIPT +FOCUS_SET +FOCUS_OBJECT +PARAM_COPY +PARAM_SET +PLAY_SAMPLE +PLAY_TONE +PHYSICS_IMPULSE +PHYSICS_TORQUE_IMPULSE +PHYSICS_FORCE +PHYSICS_TORQUE +PHYSICS_FORCES_CLEAR +PHYSICS_VEL_SET +PHYSICS_ANG_VEL_SET +PHYSICS_STOP +PHYSICS_ROT_SET +PLAY_VIBRATION +#### PLAY_SAMPLE channel +EFFECT +BACKGROUND +MUSIC +FOREGROUND +INTERFACE +INPUT +ALERT +transition||: [ LIN / SIN / SIN_FAC / ACCEL / DECEL / ACCEL_FAC / DECEL_FAC / DIVIS / BOUNCE / SPRING ] [length] (interp val 1) (interp val 2) (CURRENT)| +LINEAR +SINUSOIDAL +CUBIC_BEZIER +ACCELERATE +DECELERATE +ACCELERATE_FACTOR +DECELERATE_FACTOR +SINUSOIDAL_FACTOR +DIVISOR_INTERP +BOUNCE +SPRING +target||: [target part or program]| +target_groups||: [group] (group) (group)| +after||: [ another program ]| +api||: [name] [description]| diff --git a/templates/files/main.edc b/templates/files/main.edc new file mode 100644 index 0000000..810a00e --- /dev/null +++ b/templates/files/main.edc @@ -0,0 +1,27 @@ + +{fileheader} + +data { + item: "name" "val"; +} + + +images { + image: "example.png" COMP; +} + + +fonts { + font: "example.otf" "Example"; +} + + +collections { + + group { name: "main"; + parts { + + } + } + +}