I am using F# on a Mac and I wonder kbow if there is any F# IDE that works over mono (not a general purpose editor). It seems that there is an addon for MonoDelvelop, but I think it may no be mature enough. Any suggestion ?
strong textI actually started working on a new F# binding for MonoDevelop. I'll post the news as soon as I have something worth sharing.
Strange, seems like I can't add a comment to my answer...
Anyway, I'd like to start with basic functionality that allows for creating and compiling F# projects. When that's done I'll be looking at implementing things like auto-completion and thing like that.
Update: Due to a recent addition to our family I haven't been able complete my work. Fortunately someone else picked up the effort and results of his work are here: http://github.com/vasili/FSharpBinding
I think the MonoDevelop addon will be your best bet. Unfortuately, at this point, asking for a mature F# compiler (even on Windows) is a bit of a stretch.
It's not even officially released on Windows (CTP still for VS 2008, and 2010 is still Beta).
I use Aquamacs and some hooks into Tuareg mode. - No .Net completion (there's a C# mode here), but dabrev mode:
;; F# specific configs
;; hooked ocaml tuareg mode. If you do ML with mono e. g.
(add-to-list 'load-path "~/.elisp/tuareg-mode")
(autoload 'tuareg-mode "tuareg" "Major mode for editing Caml code" t)
(autoload 'camldebug "camldebug" "Run the Caml debugger" t)
(autoload 'tuareg-imenu-set-imenu "tuareg-imenu"
"Configuration of imenu for tuareg" t)
(add-hook 'tuareg-mode-hook 'tuareg-imenu-set-imenu)
(setq auto-mode-alist
(append '(("\\.ml[ily]?$" . tuareg-mode)
("\\.topml$" . tuareg-mode))
auto-mode-alist))
;; now we use *.fs files for this mode
(setq auto-mode-alist (cons '("\\.fs\\w?" . tuareg-mode) auto-mode-alist))
(add-hook 'tuareg-mode-hook
'(lambda ()
(set (make-local-variable 'compile-command)
(concat "fsc \""
(file-name-nondirectory buffer-file-name)
"\""))))
(defun tuareg-find-alternate-file ()
"Switch Implementation/Interface."
(interactive)
(let ((name (buffer-file-name)))
(if (string-match "\\`\\(.*\\)\\.fs\\(i\\)?\\'" name)
(find-file (concat (tuareg-match-string 1 name)
(if (match-beginning 2) ".fs" ".fsi"))))))
compile from the editor window with FSC
get an interactive session with syntax highlighting with the Mono backend
(source: 666kb.com)
You get syntax highlighting from Ocaml (very similar) and it takes care for the white spaces. I had some problems forking the FSI from Shell, because it seems there's a delay while typing. I didn't investigate this issue and switched to VisualStudio.
Alternatively there's a Textmate F# bundle. I did test that for half a minute and it works. However you don't get the Alt+Enter option from VS to evaluate your marked parts directly at the interactive prompt.
Related
I would like to use IntelliJ's feature, which converts Java code to Kotlin by simply copy-pasting from Java file to Kotlin file. It is working fine, but when I turn on IdeaVim plugin, it refuses to work anymore. I know Vim decently and I that's not the problem with my misunderstanding Vim edit modes. I am aware of How can I convert a part of Java source file to Kotlin? and answer by #yole saying that there is no other tool to do that.
But that answer was made over 3 months ago, and maybe some other tool appeared. So, my question is if someone found workaround to make IdeaVim plugin cooperate with Java to Kotlin conversion. I've already made a ticket on YouTrack: https://youtrack.jetbrains.com/issue/VIM-1103 but frankly, I am not so sure if it will be resolved.
Ok, guy from JetBrains answered my issue. The obvious workaround (which I didn't figure out) is to copy and paste from context menu. Then conversion question shows up. IMO it seems unlikely that IdeaVim plugin will support this feature by yanking and putting (Vim's copying and pasting), as from:
Running IDE actions on copy and paste might be a good idea, but we're not sure it wouldn't disrupt the workflow of the current users.
The vim plugin takes over the clipboard and past functions. When you type :actionlist you get a list of idea actions you can use in your .ideavimrc file to map keymaps to idea actions. Use :action COMMAND to execute the command.
I.e.:
norepmap <C-w>q :action VimWindowClose<cr>
closes the current window.
Furthermore, you can search for a particular action with :actionlist Past.
This lists
EditorPast <C-V> <S-ins>
among other things.
If you want to check if EditorPast ist the right command you can test it using :action EditorPaste.
Another way to make this work is to let idea handle the <C-v> shortcut. This can be archieved with the Settings -> Other Setting -> Vim Emulation settings. The handler (vim or idea) can be defined with that setting.
Is there any kind of common lisp docs like javadoc, man or even intellisense-like popups? I've just started learning common lisp and do not have enough hand memory.
I am using emacs and slime — it has tab completion, but it seem not very informative.
Thanks!
Just in case this question was meant to ask where the reference is - there are several Hyperspecs available online. If you search Google for something like "hyperspec function-name" there's a good chance you will land on one of them.
http://clhs.lisp.se/Front/index.htm
http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/FrontMatter/index.html
for example.
Depending on your editor, you can usually configure it to display it the hyperspec contents too. With SLIME in Emacs you can do M-x slime-hyperspec-lookup RET symbol-to-look-for
Another handy tool is apropos - by running (apropos "substring-in-the-symbol-name") you will get the list of all symbols that match the "substring-in-the-symbol-name".
SLIME itself provides good autocompletion. What might be tripping you is that the default keys may be bound to something that your system doesn't dispatch to Emacs (like M-TAB), in order to rebind it to something else you can do (in your .emacs file):
(define-key lisp-mode-map (kbd "C-x .")
'slime-complete-symbol)
(define-key lisp-mode-map (kbd "C-x /")
'slime-complete-form)
(define-key lisp-mode-map (kbd "C-x ,")
'slime-fuzzy-complete-symbol)
Besides, Emacs provides "lexical" completion on its own - if you hit M-/ this will try to complete the word to a word with the same suffix - it works surprisingly well, especially if you have to type in long variables/function names :)
Also, SLIME binds C-c C-d f to slime-describe-function-at-point and C-c C-d d to slime-describe-symbol-at-point and C-c C-v d to slime-describe-presentation-at-point.
Besides... something that came as a revelation to me after quite some time... if you press RET while in the buffer containing the error stack trace, point on the stack entry, it will display the value of the local variables inside the function at that stack level. If you then press RET when the point is on either of those variables, it will open a buffer describing that variable.
Look into manifest for package-based documentation. Keep in mind that Common Lisp is meant to be used as a dynamic system, and incorporates optional docstring slots into every declaration primitive it has. AFAIK, the standard way of getting documentation about a given function is to just run (describe #'function-name-here) at the repl (without the # if you're looking for documentation about a symbol).
That will give you access to docstrings as well as argument lists (in the case of methods, you get a compilation of the generic function's documentation, as well as each specific methods').
Look into autocomplete-mode, and possibly yasnippet for completions.
I'm looking for some powerful programming environment for C/C++. In fact the only think i need is powerful source navigating + creating tool. Doesn't matter if its free or commercial. I prefer some linux tool, but it doesn't have to be necessary linux app.
What i need is some kind of editor with following capabilities:
more open files + tabs/buffers switching
highlighting (+ bracket matching, folding, etc...)
save sessions
preview window(when the cursors stops on some symbol, i have also an preview window, that shows me the definition of that symbol)
searching for uses of the symbol through code
intelligent completion (must support c++ 14!)
What would be nice:
code beautifizier or something similar
utf-8 support
editor templates(for example automatic comment header for modules, functions...)
other editor scripting
a terminal/console accessible from program || compiling debugging capabilities(just for to be able to compile the whole project without switching extensively to command line)
program flow visualization
Please do anyone around the whole world knows anything, that knows all of that?
I've tried several editors/IDEs, but all of them misses something. I've decided to emphasise missing support for new c++14 - it's now probably the biggest problem:
VIM
Amazing scripting capabilities
4 and 6: i've tried to use vim+ctags+cscope and vim+gtags + omnicomplete. But its not that usable. This doesn't work properly. Vim doesn't know c++ and it does not know the symbol context. Though i've been able to achieve basically the desired behaviour after hours of learning vim scripting, i'm not able to use it in even a little more complicated manner.(Lets say i have global variable and local variable with same names and different types - vim ofc does not recognize if im seeing now global or local only variable. And i'm not even talking about namespaces, etc....). Actually VIM now support c++14 with the help of clang(libclang) and there is awesome plugin called YouCompleteMe, that can use libclang, and its auto-complete really workds with c++14 code! And it makes the vim the only editor supporting c++14.. This plugin is now more or less usable in more editors(vim, emacs, sublime). It adds autocomplete, jump to definition and error messages.
c++14 supported
Source Insight
Amazing highlighting capabilities(different font for highlighting is amazing(especially for function names in function defintion header for example), also there is possibility to assign keyboard shortcut to cancel font differences, and leave only color highlighting(when you are bothered with different code alignment(due to different fonts)
Problems with 1) (though a hacked library for this called TabsSiPlus exists)
no terminal/console
Software is not maintained anymore, its not open source(and even not free) :(((
c++14 support missing
SlickEdit
Amazing customizing possibilities, can emulate vim editing style(WOW!)
no terminal/console(actually there is one, but not that good, however it has builtin compiling capabilities
it has strange GUI - a lot of space is occupied by scrollbars, different window captions, etc..
its kinda expensive(comparing to others)
c++14 support missing
Kdevelop4
Very pleasant GUI, nice console, very fast, can emulate vi editing style(not too well though)
miss force rescan/retag project (sometimes there are wrong symbol references, especially in bigger projects - this bugs me a lot)
its preview window doesn't show definition, only reference to definition, the definition then is showed in main editing window.. - cannot see actual code and the symbol definition at once :((
c++14 support missing
Eclipse
nice environment with lots of functionality.
don't have ad4), however it has some sort of preview bubble. When you hover mouse cursor upon symbol, it will show a bubble with symbol definition. Its nice functionality, but unfortunately you need to use mouse, and its noway that user friendly as separate preview window.
also its a little slow, but i think its due to realtime syntax checking, and it probably will be disablable.
c++14 support missing
Emacs
Support c++14 by similar plugins as vim(YouCompleteMe)(see in Vim section).
Please can some proficient Emacs user fill in this section?
c++14 supported
Sublime Text 3
Not free
Support c++14 by similar plugins as vim(YouCompleteMe)(see in Vim section). Though i had some problems with it. Plugin was more unstable than in Vim for me.
Through different plugins it support more or less the same functionality(from user view) as vim.
c++14 supported
Do any of you use some different editor, that can do anything from the list above, or maybe some plugins/scripts that can achieve the demanded functionality?
Regarding VIm and your point 6, I have heard that clang_complete, which is leveraging clang from LLVM compiler was quite accurate but I have not yet tested myself.
Try Eclipse, can handle almost everything (from Java to C with GNU Tools)
Eclipse supports c++14, all you need to do is to add -std=c++1y in your prefrences->C/C++->Build->Settings->Discovery
for "CDT Cross GCC Built-in Compiler Setting" add "-std=c++1y" at the end of compiler specs.
You also set the dialects in your project setting to support c++14,
Go to your project setting->C/C++ Build->Settings->GCC C++ Compiler->Dialect and select -std=c++1y
Not sure if this is even an acceptable question, but I figured it's an IDE so...
I'm trying to write a small program in qb4.5, which has happily worked on my computer (XP SP3) for a while now. For some reason though it is now sluggish and error-prone. As the title reads, if I try to open a file then QB crashes out. A virus recently attacked my registry (among other things), and after removing it and fixing many entries there are probably some entries that I haven't corrected that may affect this.
I believe that QuickBasic uses the MSDOS edit command for its IDE. Presumable that program is affected by the virus. If that is the case, you should have problems opening other files in EDIT too.
I believe that QuickBasic uses the MSDOS edit command for its IDE
The QuickBASIC IDE (-> QB.EXE) is a self-contained application. QuickBASIC doesn't use the MS DOS editor (EDIT.COM) as an input screen. The QB IDE offers several features you won't find in EDIT.COM, for example a SUB/FUNCTION browser, live syntax checking, compile+launch menu, ...
The styling of the QB IDE looks very similar to the appearance of EDIT.COM but it's a different application. In fact, one can run QB.EXE in DOSBOX without even having EDIT.COM installed.
I am frustrated with string-to-number and number-to-string conversion in GIMP scripting. I am runnning GIMP 2.6.8 in Windows Vista.
I understand that GIMP's internal Scheme implementation changes over the versions and I can't seem to nail down the documentation. From what I can gather GIMP's Scheme is a subset of TinyScheme and/or supports the R5RS standard procedures. In any case, I usually just look in the packaged script directory for examples when I want to try something new, because that should work for sure, right?
For example, grid-system.scm comes with the latest GIMP release and has the expression,
(string-append (number->string obj) " ")
which is exactly what I want. However, if I use number->string in my own script, or even type it into GIMP's script console (which is how I usually test out new stuff I want to do) it tells me number->string is an unbound variable:
> (number->string 3)
Error: eval: unbound variable: number->string
Other standard procedures from, say R5RS, work just fine:
> (string-append "frust" "rated")
"frustrated"
So,
1) Is there some lurking documentation for current GIMP Scheme scripting other than something drastic like searching GIMP's source code?
2) Can I use the GIMP console to spit out a list of all defined procedures to find something I need?
3) Anyone else confirm that number->string is not defined for the current Windows build, even though it appears in the packaged scripts? My web searches haven't turned up any related problems, and a complete uninstall of all GIMP versions, back to latest puts me in the same scrape.
You can rebind variables and monkeypatch top level standard library functions in Scheme, but I don't think you can unbind top level variables. Maybe there is some library file that isn't loading right.
My TinyScheme in GIMP 2.6.8 on OS X executes number->string just fine.
number->string is defined in share/gimp/2.0/scripts/script-fu.init as
(define (number->string n) (anyatom->string n number?))
so you could just run that code to rebind the variable. Or maybe you could reload script-fu.init