Proposal: Skin Editor
#1
Hey guys, I would also like to propose a GSOC project. I am Manuel, a 24 years old IT student from Germany. I finished my Bachelor last year and am now working on my Master. I am using Kodi on my HTPC now for over a year. I am also interested in Kodi skins and created my own Kodi skin for my setup. From this experience comes my proposal, a Kodi skin editor. I am very familiar with the technologies described below and worked with all on them on University and personal projects.

Skin Editor

Name: Manuel
E-Mail:
Summary: Creating or editing Kodi skins is a very complex task. At the same time skins are one of the best and most visible features of Kodi. This project would create a textual editor that makes creating and editing Kodi skins easier and faster and allow many users an easier entry into the world of Kodi skinning.
Requirements: The skin editor should be a stand alone tool, rather than a part of Kodi. This would allow the editor to use a lot of existing graphical editor technology. The editor should still work on Windows, Linux and Mac, which should cover most any computer used to develop Kodi skins.
There would be no special hardware requirements.
How will I achieve this: I would start with an editor based on Xtext. After finishing the grammar of Kodi skins Xtext is able to generate a scanner, parser and a basic editor that one can build upon. This editor will than be extended with advanced syntax highlighting, code completion and many correctness checks and helpers.
A real interesting question is in how far the editor will be able to support cross referencing (e.g. includes and referenced IDs), which would be really useful in understanding existing skins.
The textual editor could be extended with graphical elements in the xml editor, like a live preview of single components or preview renders of whole windows.
What will the project focus on: Firstly to create a good text based editor with code completion, syntax highlighting and correctness checks. The secondary focus should be to create a working cross reference implementation. This project will not focus on changing how Kodi skins work or what Kodi skins can do. Its only focus is to make creating them as easy as possible.
This project should also focus on using a clear chain of tools, so that later changes in the Kodi skinning system can be easily adapted to the editor.
Benefits: This would directly benefit everyone who is working with Kodi skins. It would make editing and creating Kodi skins much faster and easier. Many error could be caught before trying the skin in Kodi. GUI element previews could be looked at instantly, e.g. to see if the border settings for this buttons create the button as it was imagined. Indirectly every Kodi user would benefit from more and higher quality skins.
Goals: The goals can be easily broken down with the features of a good textual editor.
  1. create complete grammar
  2. create useful syntax highlighting
  3. create correctness checks
  4. create good auto completion
  5. implement cross referencing
  6. add usefull tools
What does it touch in Kodi: Nothing, as the project would create a stand alone editor.
Possible mentors:
Reply
#2
In case you didn't know about these tools: I have no idea how many skinners use them and how up-to-date they are but might be a good starting point (even though they don't use Xtext).
Always read the online manual (wiki), FAQ (wiki) and search the forum before posting.
Do not e-mail Team Kodi members directly asking for support. Read/follow the forum rules (wiki).
Please read the pages on troubleshooting (wiki) and bug reporting (wiki) before reporting issues.
Reply
#3
Thanks, I actually only knew about the Notepad++ plugin. Even if they are written in a different language, they are very useful. All of them are open source which makes them a good starting point to look into for some of the features I imagine.

It also shows that there is really a need for better skin editing capability.
Reply
#4
I went through the proposal adn started to toy around with the technology a bit. A fairly basic Grammar in Xtext already produces an editor with basic syntax highlighting and quite good code completion, which is pretty awesome. Here an image:
Image

I also want to look into JetBrains MPS, which also promises to make editor creating easy. Someone also told me that MPS is more suited for xml based languages, so I want to try it out.

What do you guys think?
Reply
#5
Another possibly very useful tool for skinners would be an info viewer, which in realtime shows what different infos are evaluated as. Even more amazing would be to tie it to the current skin, to show what a controls consditional is evaluated to.

I like the idea, I think it might be most useful to target stuff like autocomplete and introspection rather than WYSIWIG but I'm no skinner so not totally sure what would help the most Smile
If you have problems please read this before posting

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.

Image

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
Reply
#6
@Virenerus

Yes Please we are all waiting for....

PS zwei Daumen hoch
Reply
#7
What I personally am far more interested in is a visual editor. For creating a text editor i suggest taking a look at sublime text. It can already do most of the functionality and whats missing can be added through a custom package.
Reply
#8
(2015-03-18, 08:36)BigNoid Wrote: What I personally am far more interested in is a visual editor. For creating a text editor i suggest taking a look at sublime text. It can already do most of the functionality and whats missing can be added through a custom package.

Drag and drop or more of a write and see the changes immediately kind of thing?
If you have problems please read this before posting

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.

Image

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
Reply
#9
Also see http://forum.kodi.tv/showthread.php?tid=221682 for a sublime text plugin phil65 just released yesterday.
Always read the online manual (wiki), FAQ (wiki) and search the forum before posting.
Do not e-mail Team Kodi members directly asking for support. Read/follow the forum rules (wiki).
Please read the pages on troubleshooting (wiki) and bug reporting (wiki) before reporting issues.
Reply
#10
Check out what Brackets can do for HTML -

http://forum.kodi.tv/showthread.php?tid=222334

Something like that for Kodi would be perfect.
Reply
#11
(2015-03-26, 23:05)Hitcher Wrote: Check out what Brackets can do for HTML -

http://forum.kodi.tv/showthread.php?tid=222334

Something like that for Kodi would be perfect.

Yeah the live preview is what I think might be the most useful. And I think it should be very doable. "Just" need to create a special executable which can start and setup a specific window and fill with mock data, and reload when code changes. Or drag out the skinning engine so we don't need the entire core.

Its not a simple project however, but doable.
If you have problems please read this before posting

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.

Image

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
Reply

Logout Mark Read Team Forum Stats Members Help
Proposal: Skin Editor2