missing documentation about agda-writer - agda

I've installed agda-writer, since the agda-mode for emacs won't work for me (doesn't do UTF8 characters, doesn't do syntax highlighting...??)
Installing agda-writer was dead easy, but I can't find any documentation, and i find myself unable to do the most basic tasks:
-- how do you perform type-checking? (seems like the most fundamental thing you might want agda to do for you...)
-- how do you turn syntax highlighting on?
-- how do you set the preferences for the standard library to work? (in other words, what is the path to the bundled standard library?)
Basically, the only thing i can do is to try and "compile"; of course this fails because I haven't got haskell installed, but at it least it triggers both syntax highlighting and type-checking (????)
I'm on Mojave.
Any help appreciated.
thanks,
Pierre

Answering partially my own question: typechecking+syntax highlighting is called "loading" in agda-write (as it is in other contexts, apparently). It's in the "actions" menu. I had assumed "load" was the same as "open the file"...
I still don't know about the standard library.

Related

How to let vim do syntax highlight right for flutter?

Some background: I am using VSCode for coding in flutter. But when I open many workspaces, it ate all my free RAM quickly (Macbookpro 8GB). (IntelliJ is even worse.) Sometimes, I just need to check other workspaces' Code etc.. So The best option is to use vim for this purpose.
I have installed dart-vim-plugin, but the syntax highlighting is not really correct for flutter, for example, BuildContext, Scaffold, AppBar etc.. all the class types are pure white color. To minimize the RAM usage, I just don't want any analysis server, auto completion etc.. I just want the editor has a correct syntax highlighting so that I can easily check the code. Is that doable?
Thank you very much for your help.
PS: I just want to use an editor which only does syntax highlight. I really don't have much free RAM. Normally, there are only 600MB left and I don't want to use them all.
Even if I am new to vim syntax highlight, since nobody provides an answer, I have to study how to do this by myself. I have created my own dart.vim and put it at ~/.vim/after/syntax/dart.vim. Note this is just an add-on for dart-vim-plugin, you still need to install it. Hopefully, this will help somebody some day.

REPL for the Dart language

Is there a REPL for Dart to experiment with?
I tried inputing dart code in DevTools in Dartium and that also didn't work.
So I couldn't find an easy way to play with various APIs in dart.
I tried inputing dart code in devtools in Dartium and that also didn't
work.
I'm very new to Dart, but something I came across was that you CAN evaluate code in Dartium. In order to do so, you must first load a page with Dart code in it and then toggle this selector in the console from "javascript page context" to one that references a Dart package or Dart code.
Once you do that you should be able to execute Dart in the console:
As a VIM user, I hardly have to open the Dart Editor now :). I should also mention that breakpoints, hovering over stepped into code to get variable details, navigating the call stack, and some level of intellisense in the console also work. I couldn't get conditional breakpoints to work, though.
Though it is not really a REPL, you may find the Try Dart online tool useful for playing around. It's a bit slow, since it is actually compiling the Dart code to JavaScript in order to have it work within the browser.
There is also a console that someone built, which is probably better if you're looking for a real REPL, but it requires a bit of setup.
There is an announcement about REPL for Dartium - see Nathanial's comment below. There are plans for Smalltalk like super-REPL. Here is what Gilad Bracha (member of the Dart team at Google) wrote on this subject in Is there a REPL or console for Dart:
"I don't see this as a language question at all. It is a matter of tooling and reflective library support. With proper mirror builder APIs, building a REPL would be trivial. As it sands right now, it can be quite challenging. And of course, REPL is not the ultimate goal - there are more advanced interactive tools, like workspaces in Smalltalk/Self/Newspeak, where you not only evaluate things interactively at some top level, but can inspect the resulting objects, evaluate within the scope of an individual declaration or object etc. I am sure we will get there in time - and i much prefer sooner than later."
The correct answer is https://dartpad.dev/
That site didn't exist when the other answers were posted in 2013, but you've stumbled on this post after 2020. And now you know. https://dartpad.dev allows you to create and share new Dart snippets and even put them in a Flutter app running online. Very, very cool!
Since 2022.10.22, there is a REPL for Dart: https://github.com/fzyzcjy/dart_interactive :)
Features:
Use any third-party package freely
Auto hot-reload code anywhere, with state preserved
Supports full grammar in REPL
Play with existing code side-by-side
Disclaimer: I wrote that package.

How to print Smalltalk code from Pharo/Squeak?

What is the best way to print - syntax colored and well formatted - code from Pharo/Squeak on paper?
1) Is there a way to print directly from within Pharo/Squeak? (i use it on macosx)
2) Is there a way to export syntax colored, well formatted code from Pharo/Squak?
3) Are there external tools to color and format a filed out piece of code?
For the appendix in my master thesis I used the Pier CMS-to-LaTeX converter in the Pier-Documentation package. However, this plugin only takes class comments and method comments into consideration, it does not print the source code. Pier also provides a package ShoutPier for syntax highlighting of Smalltalk code, so I guess it would require little work to bring the two together. You can find the mentioned extension packages in http://source.lukas-renggli.ch/pieraddons.html.
Pharo browsers seem to use syntax highlighting.
What difficulty are you having reading Smalltalk code using the browsers and senders/implementors ?
Edit: Would something that produces UML give the overview you're looking for? The Dandelion website only shows downloads for old Squeak versions - I don't know if they would work with Pharo.
And perhaps this GSoC project "Generate UML diagrams from Smalltalk code for Pharo" suggests not.
Here's how I did it on my Mac, I think this should work on other platforms too.
Save your categories to a Monticello local folder on your disk -- see the Pharo manual on how to do this: http://book.pharo-project.org/book/PharoTools/Monticello/?_s=hdGOLc_FXsvVY1iR&_k=YYH-Ln8f5mtWZ8z2&_n&148
Browse to this folder, and unzip the .mcz file
You'll see all your code in snapshot/source.st file
You'll need to edit this a bit, to remove the ! characters for e.g., there might be a tool to do this?
-Eric.
There is webdoc project, which allows you navigating code in web browser:
http://ss3.gemstone.com/ss/webdoc.html
(and of course you can print code from your favorite web browser)..
1) Install shout from www.squeaksource.com
2) I don't know. May be you can customize shout.
3) In gnu-smalltalk you have a smalltalk mode for emacs. But I am not pretty sure to understand what you are looking for.

Netbeans Intellisense for Rails

Has anybody figured out a way to make the Netbeans intellisense for ruby and rails better? It either has too many options in the list (which I understand is a problem since it is a dynamic language). Or it has no options in the list, as if it is not dynamic enough to find everything.
Are there any hacks to make it better, or is this just something that needs to be improved within the Netbeans source code? I'm currently using 6.8.
Please spare me the posts about how I don't really need to use intellisense, and I should use vim or emacs. I'm sure the vim programmers are 10 times more productive than me with all their cool shortcuts, but I have no desire to learn these tools.
if you click on options, in tools and select options.
Then go to miscellaneous tab, and select ruby.
enable extended type interface (may be slow)
check on for methods.
I tried doing this it is giving me better intellisense with methods like p, and protected methods as well.
I am using netbeans 6.8 and I suppose this would offer you better intellisense.
I'm with you on intellisense. If you're on a Mac, you might try Coda from Panic. It has better intellisense than either RadRails or Netbeans for Ruby/Rails IMHO.
Sadly you just have to wait. I read that Oracle is now focusing NB on scripting languages, and there were plans afoot to add most of what you are talking about to 6.9.
You can check out the nightly builds here: http://bits.netbeans.org/download/trunk/nightly/latest/
They've already hit milestone 1.
It has to be improved by the Netbeans team. There's nothing you can really do to help it.
[edit: oh, and you can have code completion with Vim, so .. You should use Vim! :p]
There's been improvements in 6.8, but it's still far from perfect, and you mentionned you are already using 6.8.
You might want to try RadRails - can't tell you if their code completion is better though (I'm a NetBeans user), but I seem to recall reading it was.
I haven't gotten to play with Ruby and Ruby on Rails in NetBeans 6.9, but one of the features touted by the Release Notes was improved code completion in dynamic languages (Ruby, Ruby on Rails, and Python). You might want to consider upgrading (if you haven't already) and checking it out.

Using GNU Readline; how can I add ncurses in the same program?

The title is a bit more specific than my actual goal:
I have a command-line program which uses GNU Readline, primarily for command history (i.e. retrieving previous commands using up-arrow) and some other niceties. Right now the program's output appears interspersed with the user's input, which sometimes is OK but the output is asynchronous (it comes via a network connection in response to the input commands), and that gets annoying sometimes (e.g. if lines are output when the user is typing new input).
I'd like to add a feature to this program: a separate "window" for the output. I thought about using ncurses for this. But it appears from the ncurses FAQ that the two libraries are not easy to use together.
I might consider using Editline or tecla instead of Readline, but it's not clear to me if either of those will solve my problem. I'd also consider using something other than ncurses, including a library which provides both kinds of functionality (text-mode windows and command history), but I don't know what might be best.
Oh, and support for colored text might get bonus points. I suspect I may be able to do that with Readline, so maybe it's a separate concern, but if a solution to my problem also makes it easy to add a bit of color to the output, so much the better.
I'm using Ubuntu Hardy (Linux 2.6).
I've now put together a simple example program on GitHub: https://github.com/ulfalizer/readline-and-ncurses.
It supports seamless and efficient terminal resizing and multibyte/combining/wide characters. The code has helpful comments.
Screenshot below:
I have done some searching, and it seems like you are out of luck.
For ncurses alternatives there are SLang, Newt and Turbo
Vision. Slang is much more than just screen handling and thus more
complex, but maybe it can be used for your purpose?. Newt uses the screen
handling and is much simpler, but too simple and single-threaded-mode
for your purpose I think.
Turbo vision is the text mode graphics library from Borland, used by
all their tools in the late 80s/early 90s. Borland released the source
code when the market for that kind of thing diminished, and there is
now a port for linux (side note, this project seems to have written
its own turbo vision implementation). That port is not dead (there have
been some cvs updates this year which compiled fine (the older releases
did not)), but none of the TV examples I found were up to date and I
did only got a few of them to compile before giving up on the rest.
This is a bit of a shame, because TV was a lovely environment to use.
TV is btw C++ (and I assume you are using C?).
For an alternative to readline, there is libkinput, which maybe works
together with ncurses (it says it can use ncurses' terminfo. but I am
not sure if that means that it can co-exists together with ncurses usage)?
Maybe one option is to run readline "externally" to your ncurses program
using rlwrap?
This had me banging my head for a few hours, so just to save people Googling some pain:
If you're using ncurses' builtin SIGWINCH handler with KEY_RESIZE, be aware that readline sets the LINES and COLUMNS environment variables by default. These override any dynamic size calculation (usually with ioctl() TIOCGWINSZ) that ncurses would otherwise do, meaning you'll keep getting the initial terminal size even after resizing the terminal.
This can be prevented by setting rl_change_environment to 0 before initializing readline.
Update:
Here's some additional information I gleaned from the readline sources:
readline's SIGWINCH handling code (which is used if rl_catch_sigwinch is 1) does update LINES and COLUMNS, which seems like it should be sufficient for ncurses. However, when using the alternate readline interface (which makes most sense when combining readline with ncurses), the signal handlers (including the one for SIGWINCH) will only be installed for the duration of each rl_callback_read_char() call, meaning any terminal resize between two calls to rl_callback_read_char() will not be seen by readline.
So it turns out that gdb uses both readline and ncurses. If you're interested in doing this, I recommend that you check out their implementation: http://sourceware.org/git/?p=gdb.git;a=blob;f=gdb/tui/tui-io.c
I've achieved what you've described in a program of mine:
http://dpc.ucore.info/lab:xmppconsole
The following is the file handling io:
http://github.com/dpc/xmppconsole/blob/master/src/io.c
I'm not sure which version you tried. As of today(2012.09.14) It is very simple, We just need to hook our custom function to following function pointers.
rl_getch_function
rl_redisplay_function
rl_completion_display_matches_hook
I did something reasonable here.

Resources