Re: [m-users.] Best way to implement constants ?

"Sean Charles (emacstheviking)" <[email protected]>
Newsgroups gmane.comp.lang.mercury.general
Message-ID <[email protected]>
If by nano-scale you mean 'nano', then yes, that editor. I took a snapshot and put it here, I have no ida how long it remains alive:


https://pasteboard.co/37SlORCNzgln.png
nano with mercury syntax highlighting - Image on Pasteboard
pasteboard.co

I modified the Prolog mode to work a little better with Mercury, it's by no means perfect, there are some odd colouring issues when I have a string containing certain escape sequences, but bearing in mind nano uses simple regex filters to figure out what to colour, I am still very happy with the way it works.

I wrote a tool to use the 'formatter hook' in nano, so that, after a compile, if there are errors, I just do 'Meta-F' and it inserts the errors messages into the source file, as a comment, and the hook I wrote (in Mercury) adjusts the errors to work with my syntax highlighting, another small image:

https://pasteboard.co/Uu5jsXV8YqEX.png
Mercury with nano - Image on Pasteboard
pasteboard.co

The custom formatter hook is here on github: https://github.com/emacstheviking/mercury-pberr
I have some other stuff that's mercury related there, I think I've troubled this list with it before?! :D

Cheers!

--- mercury nano configuration file, ~/.nano/mercury.nanorc ---
--- BEGIN ---

## Mercury, ported and adjusted from Prolog mode.

syntax "mercury" "\.m$"
comment "%"

## Written in Mercury for Nano+Mercury, this will interleave
## a FOO.err file when called from FOO.m via Meta-F (formatter)
formatter pberr nanoformatter

# Integers and floats
color yellow "(^| |=)[0-9]+\.?[0-9]*"

# Variables
color magenta "(^|[[:blank:]]|\(|,)[A-Z_!][a-zA-Z0-9_\.\:]*($|[[:blank:]]|,|\))"

# Anonymous variable '_'
color yellow "(^|[[:blank:]]|\(|,)_($|[[:blank:]]|,|\))"

# Functions
color cyan "(^|[[:blank:]])\w+\("
color cyan "\(|\)|\[|\]|,|=|\\="

# Comments
color green "(^|[[:blank:]])%.*$"

# Strings
color yellow "\".*\""

# compiler :-
color cyan "^:- .*$"

# custom errors for pberr
color red "^%E.*$"

# Reminders
color yellow "(BUG|DEBUG|FIXME|IDEA|NOTE|REVIEW|TEMP|TODO|WARNING|XXX|TOFU)"

# Spaces in front of tabs
color ,red " +	+"

--- END ---




> On 18 Aug 2023, at 14:35, Volker Wysk <[email protected]> wrote:
> 
> Am Freitag, dem 18.08.2023 um 14:25 +0100 schrieb Sean Charles
> (emacstheviking):
>> LOL! I am a lapsed emacs user of 30 years... vscode stole my affections,
>> saying that, I use nano exclusivly for Mercury, I've written a few tools
>> to help me out, and all in all, nano is just fine!
> 
> You mean that nano-scale editor? For real? Does it even have a Mercury (or
> Prolog) mode with syntax highlighting, like Emacs does?
> 
>> 
>>> On 18 Aug 2023, at 14:24, Mark Brown <[email protected]> wrote:
>>> 
>>> On Fri, Aug 18, 2023 at 6:26 PM Sean Charles (emacstheviking)
>>> <[email protected]> wrote:
>>>> My question is simple this: is what I have done 'ok' or is it a diabolical insult to all that as beautiful and holy in the Mercury world?
>>> 
>>> You mean the planet? :-P
>>> 
>>> To answer your question in general, the measure of what you write
>>> depends on your intended audience. It's the same for programming as it
>>> is for other kinds of writing. Having said that, I hate it when I
>>> can't use tags in vim.
>>> 
>>> Mark
>> 
>> _______________________________________________
>> users mailing list
>> [email protected] <mailto:[email protected]>
>> https://lists.mercurylang.org/listinfo/users
> 
> _______________________________________________
> users mailing list
> [email protected] <mailto:[email protected]>
> https://lists.mercurylang.org/listinfo/users

_______________________________________________
users mailing list
[email protected]
https://lists.mercurylang.org/listinfo/users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.