I like to request some features to make YueScript easier to copy code and use with AI assistant code like ChatGPT and Github Copilot, Tabnine!
Nobody has claimed this yet.
- Dominant language
- Lua
- Stars
- 613
- Forks
- 45
- PR merge metrics
- No merged PRs in 30d
Description
Well...
I use YueScript daily to write tools and script games as a hobby, but I also work in other languages like Python, javascript, C# and GDScript as a dev. I extend use Github Copilot and sometime ChatGPT. The AI really helpful but they just keep suggest with Python or Lua code. It is a chore to convert them back to YueScript. It is the same when I want to 'borrow' codes online.
Then one idea pop into my mind, why not make YueScript more AI and copy friendly by support more Python, Lua or other lanagues common syntax, notation and make it easier to convert code to YueScript. I think it will be a great feature for YueScript and make it more popular.
Here are some I think will be helpful:
-
Support create list like table with syntax:
arr = []
YueScript only support [] in list comprehension like Python. It is kind of a wasteful syntax and it is like a chore to must convert all [] => {}. Support[]make code look better, easier to see, AI Copilot friendly and easier to copy, convert from code of other languages like: Python, javascript, json, GDScript, etc. -
Support Lua table syntax:
{key = val}
It copies Lua's code table or accepts AI's suggested code without the need to edit it would be nice. And it is a nice style, even GDScript supports it then why won't YueScript support it? -
Support declare function style like:
function myfunction(parm1, param2)orfunc myfunction(parm1, param2)ordef myfunction(parm1, param2)would be nice.
It is a common syntax in many languages like Python, Lua, GDScript, etc. It looks better thanmyfunction = () ->. Yuescript is very nice but I think that humans and AI prefer it more. -
I like to write yuescript to make some local tools to process my assets. My OS is Windows, I prefer to use YueScript/Lua over bat/cmd. It would be nice if YueScript supports more template string because
"${exe} #{arg1} #{arg2}"is not good on Windows: exe ad arg1/arg2 can have space in the path and require quotes with '"'. It would be nice if YueScript supports raw template string like:os.execute [["#{exe}" "#{arg1}" "#{arg2}"]] -- that maybe confilct with current yuescript raw string -- or adopt Python style raw string os.execute """ "{exe}" "{arg1}" "{arg2}" """ -- or adopt js style os.execute `"${exe}" "${arg1}" "${arg2}"` -- or just add support template to '' string as os.execute '"${exe}" "${arg1}" "${arg2}"' -
Add support 'var' keywords like javascript, GDScript: with feature hoisting as JavaScript's default behavior of moving declarations to the top of functions or global scope. It solves the problem of using a variable before it has been declared without need to use
local *:
a = ->
print "a"
b!
b = ->
print "b"
a! -- attempt to call a nil value (global 'b')
It is the pain when writing utility scripts that have many functions and depend on each other
- Add 'elif' as 'elseif'. Well... I code a lot in python, so I make a lot of silly mistake like use 'elif' in Yue.
Thank you and regards!
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or entry points are named. Treat the six syntax proposals as separate design tasks, first determining which requests are compatible with YueScript's existing syntax and compilation model. Done would require an agreed scope, documented syntax, and tests for each accepted feature.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- lua
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100