Kodi Community Forum

Full Version: KodiDevKit: SublimeText3 plugin to support kodi skinning / scripting
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
hey I am trying to get this up and running (way over my head)
saved the skin folder as projekt but when i start it up I get an error
Quote:Error loading syntax file Packages/sublimekodi/kodiskinxml.sublime-syntax" :error parsing plist xml:expected < in file Packages/sublimekodi/kodiskinxml.sublime-syntax on line "
please forgive errors in the "error" but I manually wrote it over.
which exact sublimetext version do you use?
ohhh dident occur to me that could be it but I am using the 83 since i dont have a key
(2015-07-01, 00:40)ztrust Wrote: [ -> ]ohhh dident occur to me that could be it but I am using the 83 since i dont have a key

Then you probably have to wait until they release a newer one.
ok thank you Smile
Hi Phil,

Just noticed a special case my includes return as "unused" when launching the test.
I'm using a cascading include process in order to my dialogs to display in the right place depending the parameters of the designer as follow :

In the dialog.xml (ex for keyboard) :

Code:
            <include name="DialogPOS">
                <param name="DialogName" value="DiaKeyboard" />
            </include>

In the common includes.xml (ex for only one condition) :

Code:
    <!-- Dialog Positioner -->
    <include name="DialogPOS">
        <include name="$PARAM[DialogName]" condition="StringCompare(Window(Home).Property(DialogPos),TOP) + StringCompare(Window(Home).Property(SidebarPos),TOP)">
            <param name="DIABgPosX" value="0" />
            <param name="DIABgPosY" value="120" />
            <param name="DIABgSizeX" value="1920" />
            <param name="DIABgSizeY" value="380" />
            <param name="DIAB1PosX" value="0" />
            <param name="DIAB1PosY" value="132" />
            <param name="DIAB2PosX" value="648" />
            <param name="DIAB2PosY" value="132" />
            <param name="DIAB2SizeX" value="1200" />
            <param name="DIAB2SizeY" value="308" />
            <param name="DIAB2TextY" value="186" />            
            <param name="DIAB3PosX" value="1284" />
            <param name="DIAB3PosY" value="132" />    
        </include>
    </include>

And finally the dialog include.xml file :

Code:
    <!-- Keyboard Dialog -->        
    <include name="DiaKeyboard">
        <control type="group">
        <animation effect="fade" start="0" end="100" time="100" delay="100">WindowOpen</animation>
        <animation effect="fade" start="100" end="0" time="100" delay="100">WindowClose</animation>
        
            <!-- Bloc 1-->
            <control type="group">
                <left>$PARAM[DIAB1PosX]</left>
                <top>$PARAM[DIAB1PosY]</top>
                <width>636</width>
                <height>354</height>
                
                <control type="image">
                    <left>24</left>
                    <posy>248</posy>
                    <width>588</width>
                    <height>1</height>
                    <texture colordiffuse="FFFFFFFF">common/white.png</texture>
                    <animation effect="fade" start="100" end="50" time="0" condition="true">Conditional</animation>
                </control>
                
                <!-- Edit -->
                <control type="edit" id="312">
                    <top>177</top>
                    <left>24</left>
                    <width>542</width>
                    <height>60</height>
                    <align>Left</align>
                    <font>Font36</font>
                    <textcolor>$INFO[Skin.String(Color.DIATitle)]</textcolor>
                    <onright>8</onright>
                    <ondown>6000</ondown>
                </control>
        ... Blablabla

I think your plugin doesn't see the final include name because it's only checking the <include name="$PARAM[DialogName]" ...>

Cheers
hi all,

hope you can help me out. i installed sublime text 3 but how do i use this plugin? how do i install it? i really whant to get into skinning.

thanks
(2015-09-10, 10:44)Jayz2K Wrote: [ -> ]Hi Phil,

Just noticed a special case my includes return as "unused" when launching the test.
I'm using a cascading include process in order to my dialogs to display in the right place depending the parameters of the designer as follow :

In the dialog.xml (ex for keyboard) :

Code:
            <include name="DialogPOS">
                <param name="DialogName" value="DiaKeyboard" />
            </include>

In the common includes.xml (ex for only one condition) :

Code:
    <!-- Dialog Positioner -->
    <include name="DialogPOS">
        <include name="$PARAM[DialogName]" condition="StringCompare(Window(Home).Property(DialogPos),TOP) + StringCompare(Window(Home).Property(SidebarPos),TOP)">
            <param name="DIABgPosX" value="0" />
            <param name="DIABgPosY" value="120" />
            <param name="DIABgSizeX" value="1920" />
            <param name="DIABgSizeY" value="380" />
            <param name="DIAB1PosX" value="0" />
            <param name="DIAB1PosY" value="132" />
            <param name="DIAB2PosX" value="648" />
            <param name="DIAB2PosY" value="132" />
            <param name="DIAB2SizeX" value="1200" />
            <param name="DIAB2SizeY" value="308" />
            <param name="DIAB2TextY" value="186" />            
            <param name="DIAB3PosX" value="1284" />
            <param name="DIAB3PosY" value="132" />    
        </include>
    </include>

And finally the dialog include.xml file :

Code:
    <!-- Keyboard Dialog -->        
    <include name="DiaKeyboard">
        <control type="group">
        <animation effect="fade" start="0" end="100" time="100" delay="100">WindowOpen</animation>
        <animation effect="fade" start="100" end="0" time="100" delay="100">WindowClose</animation>
        
            <!-- Bloc 1-->
            <control type="group">
                <left>$PARAM[DIAB1PosX]</left>
                <top>$PARAM[DIAB1PosY]</top>
                <width>636</width>
                <height>354</height>
                
                <control type="image">
                    <left>24</left>
                    <posy>248</posy>
                    <width>588</width>
                    <height>1</height>
                    <texture colordiffuse="FFFFFFFF">common/white.png</texture>
                    <animation effect="fade" start="100" end="50" time="0" condition="true">Conditional</animation>
                </control>
                
                <!-- Edit -->
                <control type="edit" id="312">
                    <top>177</top>
                    <left>24</left>
                    <width>542</width>
                    <height>60</height>
                    <align>Left</align>
                    <font>Font36</font>
                    <textcolor>$INFO[Skin.String(Color.DIATitle)]</textcolor>
                    <onright>8</onright>
                    <ondown>6000</ondown>
                </control>
        ... Blablabla

I think your plugin doesn't see the final include name because it's only checking the <include name="$PARAM[DialogName]" ...>

Cheers

That new include stuff is incredibly hard to parse because skinners can do really weird stuff now.
Since I am busy with a bigger project atm it will probably take some time until I can offer full support for this.
(2015-09-15, 16:09)tris20 Wrote: [ -> ]hi all,

hope you can help me out. i installed sublime text 3 but how do i use this plugin? how do i install it? i really whant to get into skinning.

thanks

Read through the thread and you should find all needed info.
(2015-09-15, 17:34)phil65 Wrote: [ -> ]
(2015-09-15, 16:09)tris20 Wrote: [ -> ]hi all,

hope you can help me out. i installed sublime text 3 but how do i use this plugin? how do i install it? i really whant to get into skinning.

thanks

Read through the thread and you should find all needed info.

thanks, i will look again when i have some more time no too stressed.

Do you guys know what program is the best for skinning for beginners?
Hey Phil,

I've updated to the latest Git version and now I have a strange color syntax in my variables file:

Image

Edit:
My fault... ^^ missing ")"
Yeah that custom syntax highlighting makes errors often quite obvious.
Because https://github.com/xbmc/xbmc/pull/9534 was finally merged I can now properly make use of ST3 symbols management.
This might require that you use "KodiSkinXML" as default for .xml files (View-->Syntax--> Open all with current extension as... --> SublimeKodi --> kodiskinxml )
After that you can search through all definitions with ctrl+shift+r for example, or use ctrl+p--> some letters for file selection --> type "@" --> fuzzy-search symbols Smile
Image
So I've been using this for a while now, mainly the highlighting and auto closing an such. Just looking into the sanity check features but I can't get it to work. When i use the command palette nothing shows up when i type sublimekodi. Anyone got tips for me?
(2016-04-13, 01:29)Jeroen Wrote: [ -> ]So I've been using this for a while now, mainly the highlighting and auto closing an such. Just looking into the sanity check features but I can't get it to work. When i use the command palette nothing shows up when i type sublimekodi. Anyone got tips for me?

- Plugin is installed correctly? (on windows: C:\Users\yourname\AppData\Roaming\Sublime Text 3\Packages\SublimeKodi)
- skins organized as projects?

SublimeText log output could also give some hints.
When switching projects, you should get something like:

SublimeKodi: project change detected: C:\Kodi\portable_data\addons\skin.estuary
SublimeKodi: Parsing po file C:\Kodi\portable_data\addons\skin.estuary\language\resource.language.en_gb\strings.po
SublimeKodi: Parsing po file C:\Kodi\portable_data\addons\skin.estuary\language\resource.language.de_de\strings.po
SublimeKodi: Kodi project detected: C:\Kodi\portable_data\addons\skin.estuary
SublimeKodi: found include file: C:\Kodi\portable_data\addons\skin.estuary\1080i\Includes.xml
SublimeKodi: found include file: C:\Kodi\portable_data\addons\skin.estuary\1080i\Defaults.xml
SublimeKodi: found include file: C:\Kodi\portable_data\addons\skin.estuary\1080i\Includes_Home.xml
SublimeKodi: found include file: C:\Kodi\portable_data\addons\skin.estuary\1080i\Includes_Animations.xml
SublimeKodi: found include file: C:\Kodi\portable_data\addons\skin.estuary\1080i\Includes_MediaMenu.xml
SublimeKodi: found include file: C:\Kodi\portable_data\addons\skin.estuary\1080i\Includes_Buttons.xml
SublimeKodi: found include file: C:\Kodi\portable_data\addons\skin.estuary\1080i\Includes_PVR.xml
....
SublimeKodi: found include file: C:\Kodi\portable_data\addons\skin.estuary\1080i\Variables.xml
SublimeKodi: Include List: 177 nodes found in '1080i' folder.
SublimeKodi: found 92 XMLs in C:\Kodi\portable_data\addons\skin.estuary\1080i
SublimeKodi: found color file: charcoal.xml
SublimeKodi: color list: 12 colors found
SublimeKodi: found color file: chartreuse.xml
SublimeKodi: color list: 24 colors found
SublimeKodi: found color file: defaults.xml
SublimeKodi: color list: 36 colors found
SublimeKodi: found color file: gold.xml
SublimeKodi: color list: 48 colors found
...
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22