Alexey-T / CudaText

Cross-platform text editor, written in Free Pascal
Mozilla Public License 2.0
2.49k stars 170 forks source link

'Common Lisp' lexer #5715

Open DeivAstra opened 2 days ago

DeivAstra commented 2 days ago

Hello, a big thanks for CudaText. Very handy editor with low memory consumption.

I had create new lexer and tested it well. You can download lexer files by link: https://codeberg.org/X4J14/cudatext-cl-lexer Thanks.

Alexey-T commented 1 day ago

Thanks! Looking at the .cuda-lexmap file I see oddities

[map] Marked block=BracketBG

'marked block' was legacy of synwrite. its style of selection. not used in Cud. pls del this style if its style of selection.

Symbol=Id1

usually it should be Symbol, not Id1

Number=Number String=String Identifier=Id

ok

Reserved word=Id2

should be IdKeyword, not Id2 (Id2 is for types, e.g in pascal: Integer / Boolean / Real...)

Comment=Comment Brackets=Symbol2

ok

Current block=Number

bad - Number is bold blue. too bright. maybe bettter IncludeBGx/SectionBGx styles?

Global variable=IdVar

ok

DeivAstra commented 1 day ago

I fixed the issues, could you check again. Thanks.

Alexey-T commented 22 hours ago

as I see 'Current block' hilites the () brackets when caret inside. so, use for it this style - BracketBG.

Alexey-T commented 22 hours ago

ops, style for ':word' is better the Id1 or Id2. Not Symbol. you were right.

Alexey-T commented 22 hours ago

also consider to remove the 'current block' feature of lexer, - Cud's bracket Highlighter (built in) does the work too. not sure here.

Alexey-T commented 21 hours ago

optional idea; in .acp file, you can write "func" for functions. not "keyword".

other entities exists there? errors? classes? write them if so.

DeivAstra commented 11 hours ago

Fixed. Also made some regex improvements and added Symbol rule. Tested, looks well. You can test with it https://github.com/sbcl/sbcl/blob/master/contrib/asdf/asdf.lisp

Alexey-T commented 11 hours ago

BTW, lexer-detecter plugin suggests lexer Lisp for *.lisp files. i dont know is it better to change it to new lexer name.

In 10 minutes: published the lexer in addon-manager.

DeivAstra commented 10 hours ago

Clear Lisp is outdated, the lexer can be used to highlight any dialect of lisp but not so well. Most popular today are Common Lisp, Scheme and Emacs Lisp. About the file extension - lisp hackers recommend use .lisp if possible. Answer here: https://stackoverflow.com/questions/15187240/what-is-the-convention-for-lisp-filename-extension but you can add .lsp also. Thanks.

Alexey-T commented 10 hours ago

changed lexer-detecter to use Common Lisp for *.lisp. will be Cud update. thanks.

DeivAstra commented 10 hours ago

Offtopic, I want to make CudaText distributive with preistalled Common Lisp compiler and so on. Where I can contant you? I see only forurm.

Alexey-T commented 10 hours ago

pls use support(at)uvviewsoft.com

DeivAstra commented 10 hours ago

A big thanks for cooperation.

Alexey-T commented 10 hours ago

don't you want to make 'build system' for the Runner plugin?

like these: https://sourceforge.net/projects/cudatext/files/addons/buildsystems/

docs for Runner: https://wiki.freepascal.org/CudaText_plugins

as example try to use Sublime's build system.

DeivAstra commented 9 hours ago

Thanks, will examine the links. I dont exactly know how to make this, but I need something like out of the box solution. Just download, extract archive(cudatext with CL lexer and other preinstalled plugins + SBCL compiler) then run. This is for begginers to learn CL more quickly. Emacs as most featured IDE for CL is intricated. By the way, I have use linux, so, this solution will be for linux only. Right now I use /Tools/Config.. and there is configured hotkey to run the bash script to run SBCL with the file from the active tab.

Just FYI: maybe connection a CudaText community to the Matrix https://element.io will good thing. It is replacement to proprietary Discord, and it is open source https://github.com/matrix-org There you can open rooms for freepascal/lazarus, right now that public rooms does't exist. You can take a place. Forum and email are not suitable for quick communication. I connected to Common Lisp and other rooms it is so convients. Pure web client exist also.

DeivAstra commented 9 hours ago

Builds are more convient than clean editor with plugins. For examples, popular Java IDE has preconfigured "builds": https://www.eclipse.org/downloads/packages/ https://www.jetbrains.com/ides/#choose-your-ide I think that CudaText is quite powerful and featured to have own builds. Or as an alternate the CudaText can have a startup configurator to choose language and then install required files - utils, compilers, lexers and so on. Not sure, maybe the editor can do that already. Will glad you meet in the Matrix to continue our conversation. )

Alexey-T commented 8 hours ago

I tried to install Element.io from google app store, but progress indicator runs forever with error after 5 min.

Will try later. If error, will get desktop version

Alexey-T commented 8 hours ago

welcome to a new room at matrix.org. name 'CudaText'.

DeivAstra commented 8 hours ago

Could not find that room. The room need make a public and you can copy invitation link here. See the room Settings/General. First, add Local address like cudatext:matrix.org, then set as Published address. Switch "Publish this room to the public in matrix.org's room directory?" checkbox.

Alexey-T commented 8 hours ago

It is public. But i have connection problems on desktop. Icon of room cannot be changed

Seems rus-federation blocked the matrix

Alexey-T commented 8 hours ago

Lets create the discussion at github then.

DeivAstra commented 7 hours ago

Please try connect to my test room by link https://matrix.to/#/#piped-watch:matrix.org I did it public. Not sure about that Matrix has some restrictions by geo-ip locations. Thanks.

DeivAstra commented 7 hours ago

Or try invite me @deiv-astra:matrix.org to your room.

Alexey-T commented 7 hours ago

ru country is blocked.

DeivAstra commented 5 hours ago

Joined to CudaText room by link https://app.element.io/#/room/#cudatext:matrix.org. Also I found you by your name. I anwered about publishing room error, the Matrix public directory is frozen due to misuse, but you can connect to public rooms by links. Got the same error, it is not block room at all, just cant publish to the Matrix directory only.

DeivAstra commented 5 hours ago

By the way, Matrix does not blocked ru segment, because I connected from the same location as you, but at times, the connection is unstable.