Alexey-T / CudaText

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

'Common Lisp' lexer #5715

Closed DeivAstra closed 1 month ago

DeivAstra commented 2 months 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 month 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 month ago

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

Alexey-T commented 1 month ago

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

Alexey-T commented 1 month ago

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

Alexey-T commented 1 month 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 1 month 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 1 month 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 1 month 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 1 month 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 1 month ago

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

DeivAstra commented 1 month 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 1 month ago

pls use support(at)uvviewsoft.com

DeivAstra commented 1 month ago

A big thanks for cooperation.

Alexey-T commented 1 month 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 1 month 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 1 month 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 1 month 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 1 month ago

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

DeivAstra commented 1 month 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 1 month 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 1 month ago

Lets create the discussion at github then.

DeivAstra commented 1 month 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 1 month ago

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

Alexey-T commented 1 month ago

ru country is blocked.

DeivAstra commented 1 month 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 1 month 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.

Alexey-T commented 1 month ago

I have read that '3 letter agency' blocked the Matrix in russia. some forums mention it in google results.

Alexey-T commented 1 month ago

so, I made the discussion in the Discussions tab on Github. tagged your nickname there.