Recommend solution and implement viewing and editing of DSL code

Closed Posted 5 years ago Paid on delivery
Closed Paid on delivery

Please write fixed price you'd like to get for implementation.

______

Recommend solution and implement a demo for viewing and editing DSL code.

Format of DSL is relatively simple - it's plain text. Tabs give additional meaning to the code - they define "level" - number of tabs = level. Level determines relationships between the 2 rows, e.g., child / parent, sibling relationship, ... .

There is a small number of keywords: ak:, k:, ->

Example of DSL code:

ak:Product1

k:Also called -> P1

k:Characteristics

Char1

Char2

k:Tags -> Status Beta, Proof

ak:Product2

k:Types

ak:PT Product2

ak:PR Product2

k:Description -> Some longer text ...

Features needed

1) Collapsible regions like in C# in Visual Studio (#rtegion ... #endregion)

1.1) Ability to collapse current paragraph and all its child paragraphs. E.g., collapsing k:Types hides also ak:PT Product2 and ak:PR Product2

1.2) Ability to collapse only value after first last -> in given paragraph

1.3) When something is collapsed, ideally it should take no space. E.g., in Visual Studio collapsed region still occupies 1 row. It'd be great if indication that something is collapsed could be in the "border", e.g., like in Visual Studio is indicated break point - red circle

1.4) A way for a user to write some code to collapse, e.g., all paragraphs that have k:Types in whole document

1.5) Like 1.4 but using Tags - collapse all paragraphs that have child paragraph Tag of specific value. E.g., collapse all paragraphs that have tag Proof. It'll colapse ak:Product1 and its children

2) "Syntax highlighting"

Keywords in gray. Keyword is ak:, k:, etc.

Text after keyword until end of line or until -> is formatted depending on keyword type. E.g., for ak: it'd be bold, so Product1 is bold

-> is of some style too

Values in k:Tags (e.gf., Status Beta, Proof) have a custom style

All styles should be editable so user can change it according to their taste. Users are able to write code so it doesn't need UI ... but it shouldn't be awfully complicated

3) Text wraps but is indented the same way as level + 1 would be. E.g., if k:Description text would be on 2 lines, its second line should start as if there were 2 tabs. (k:Description is levekl 1 so it has 1 tab.)

4) Ideally, ability to move caret to next sibling (keyword on same level before/after current position). E.g., ak:Product2 - if moving before then caret goes to ak:Product1

Ideally this is done as an extension, e.g., to Visual Studio Code, Atom, Visual Studio. Also other editors can be considered if they're free.

How you'd do it ? It can be as simple as saying in editor named X using, e.g., its extensibility features. Feel free to recommend multiple options. Cost wins. I have a preference for extension to some editor but a custom solution will be considered too.

.NET C Programming C# Programming C++ Programming Software Architecture

Project ID: #17029660

About the project

3 proposals Remote project Active 5 years ago

3 freelancers are bidding on average €453 for this job

Yknox

Hello, I'm Smile Song, developer in China. I'm interesting your project very well I'm a Good C#, Python, .Net, MVC, Website Design, Angular.js, ASP.NET expert. I m quite well experienced in these jobs. Let's go ahe More

€555 EUR in 10 days
(1029 Reviews)
9.4
hbxfnzwpf

I am very proficient in c and c++. I have 16 years c++ developing experience now, and have worked for more than 7 years. My work is online game developing, and mainly focus on server side, using c++ under Linux environ More

€250 EUR in 5 days
(189 Reviews)
7.2