digitalmars.D - How to write Good IDE?
- unDEFER (13/13) Feb 01 2017 Hello!
- FrankLike (4/4) Feb 01 2017 On Wednesday, 1 February 2017 at 15:12:42 UTC, unDEFER wrote:
- Jack Stouffer (14/15) Feb 02 2017 Speed. That's the only reason I use sublimetext 3 and not an IDE.
- unDEFER (2/3) Feb 02 2017 Yes, speed it will one of the main characteristic of my IDE.
- Chris Wright (14/16) Feb 02 2017 It's awkward to use dmdfe as a library, mainly because it's not vetted t...
- unDEFER (6/13) Feb 02 2017 The last is more possible that I want. But not with dmd, but
- Jacob Carlborg (8/22) Feb 03 2017 The old Eclipse plugin for D1, Descent [1], is the gold standard when it...
- unDEFER (2/7) Feb 03 2017 Thank you! Good links.
- MGW (5/6) Feb 03 2017 Simple IDE. It is possible that that is useful from this what is.
Hello! So my unDE 0.2.0 is released (http://forum.dlang.org/thread/yzfthfipouzhejfskxxp forum.dlang.org), and this means that the time to write unDE 0.3.0 - text editor and IDE. And I grab my head when thinking how much I want to implement. 1) It must shows unused modules 2) It must shows parts of modules which used by module 3) It must shows not caught exceptions 4) It must autocomplete always even "string".to I have seen pretty tool from Hackerpilot (DCD, dfmt, Dscanner), but it doesn't cover this list. And I think how easier may be implement such IDE? From zero, or maybe possible to use parts of dmd/gdc? And what important for you for Good IDE?
Feb 01 2017
On Wednesday, 1 February 2017 at 15:12:42 UTC, unDEFER wrote: Visual Studio .net is the best,you can look at it! Thanks. Frank
Feb 01 2017
On Wednesday, 1 February 2017 at 15:12:42 UTC, unDEFER wrote:And what important for you for Good IDE?Speed. That's the only reason I use sublimetext 3 and not an IDE. rant: I abhor any kind of lag, input or otherwise. I used to play tons of fighting games and character action games, and in them I was trained to feel dropped frames, which cause you to have less time to react to things on screen. Every time an IDE drops below 60 frames per second, I notice, and it feels like crap. If it takes longer than two seconds for your app to open itself or open a file, it's too slow. If the app ever drops below 60 fps while I'm entering text or scrolling down a file, it sucks. If your IDE freezes on files larger than 5 mb *cough* atom *cough*, then it sucks. end of rant
Feb 02 2017
On Thursday, 2 February 2017 at 15:04:10 UTC, Jack Stouffer wrote:Speed.Yes, speed it will one of the main characteristic of my IDE.
Feb 02 2017
On Wed, 01 Feb 2017 15:12:42 +0000, unDEFER wrote:And I think how easier may be implement such IDE? From zero, or maybe possible to use parts of dmd/gdc?It's awkward to use dmdfe as a library, mainly because it's not vetted to work with the GC. You *can* disable the GC, invoke dmdfe, copy out the data you need, and then enable the GC. This doesn't let you take advantage of the fact that almost all the code will be identical between two invocations. It's going to be slow. It won't necessarily get you the information you need. On the plus side, it accepts D pretty well, and someone else gets to maintain it for you. You could write your own. This is a project that might take years on its own. You could fork dmdfe, add your own fields and datastructures for things you need that aren't there already, add extra analysis that suits you, and change error handling to account for partially completed lines of code.
Feb 02 2017
On Friday, 3 February 2017 at 01:31:03 UTC, Chris Wright wrote:It's awkward to use dmdfe as a library, mainly because it's not vetted to work with the GC. You *can* disable the GC, invoke dmdfe, copy out the data you need, and then enable the GC.Thank you Chris, really I don't want use dmd as libraryYou could fork dmdfe, add your own fields and datastructures for things you need that aren't there already, add extra analysis that suits you, and change error handling to account for partially completed lines of code.The last is more possible that I want. But not with dmd, but maybe with gcc/gdc. I really don't know how to fast support several languages. And maybe first version will support only D. So.. I want to create own IDE for 6 months..
Feb 02 2017
On 2017-02-01 16:12, unDEFER wrote:Hello! So my unDE 0.2.0 is released (http://forum.dlang.org/thread/yzfthfipouzhejfskxxp forum.dlang.org), and this means that the time to write unDE 0.3.0 - text editor and IDE. And I grab my head when thinking how much I want to implement. 1) It must shows unused modules 2) It must shows parts of modules which used by module 3) It must shows not caught exceptions 4) It must autocomplete always even "string".to I have seen pretty tool from Hackerpilot (DCD, dfmt, Dscanner), but it doesn't cover this list. And I think how easier may be implement such IDE? From zero, or maybe possible to use parts of dmd/gdc? And what important for you for Good IDE?The old Eclipse plugin for D1, Descent [1], is the gold standard when it comes to IDE's for D. Check the features list [2] to get some ideas and inspiration. [1] http://www.dsource.org/projects/descent [2] http://www.dsource.org/projects/descent#Features -- /Jacob Carlborg
Feb 03 2017
On Friday, 3 February 2017 at 12:37:53 UTC, Jacob Carlborg wrote:The old Eclipse plugin for D1, Descent [1], is the gold standard when it comes to IDE's for D. Check the features list [2] to get some ideas and inspiration. [1] http://www.dsource.org/projects/descent [2] http://www.dsource.org/projects/descent#FeaturesThank you! Good links.
Feb 03 2017
On Wednesday, 1 February 2017 at 15:12:42 UTC, unDEFER wrote:And what important for you for Good IDE?Simple IDE. It is possible that that is useful from this what is. I permanently use it as it is very quickly. https://www.youtube.com/watch?v=RBan5Dwt_JM https://github.com/MGWL/QtE5/tree/master/ide5
Feb 03 2017
On Friday, 3 February 2017 at 19:17:54 UTC, MGW wrote:On Wednesday, 1 February 2017 at 15:12:42 UTC, unDEFER wrote:Wow, without DCD? Looking interesting. How to build ide5? $ dub build Performing "debug" build using dmd for x86_64. qte5 0.0.7: building configuration "exampleLinux"... Linking... Running post-build commands... Error load: libQtE5Widgets64.so Copying files for qte5... $ dmd -of=ide_5 ide5/ide5.d ide5/ini.d ide5/qte5prs.d source/asc1251.d source/qte5.d $ ./ide_5 -d Error load: libQtE5Widgets64.soAnd what important for you for Good IDE?Simple IDE. It is possible that that is useful from this what is. I permanently use it as it is very quickly. https://www.youtube.com/watch?v=RBan5Dwt_JM https://github.com/MGWL/QtE5/tree/master/ide5
Feb 04 2017
On Saturday, 4 February 2017 at 18:12:25 UTC, unDEFER wrote:On Friday, 3 February 2017 at 19:17:54 UTC, MGW wrote:// All source files in the current folder // Все исходники в текщем каталоге ide5.d ini.d qte5prs.d asc1251.d qte5.d libQtE5Widgets64.so pr1.ini ide5sh.txt // Set current folder for load SO // Укажем загрузчику, что SO можно грузить и из текущего каталога LD_LIBRARY_PATH=`pwd`; export LD_LIBRARY_PATH; // Compile executable ide5 for 64 // Компилируем для 64 разрядного варианта dmd ide5 qte5 qte5prs asc1251 ini -release -m64 // Run ide5 with project pr1.ini // Запуск ide5 с проектом pr1.ini Без указания проекта старт невозможен ./ide5 -i pr1.ini Для общения можно использовать https://vk.com/vk_dlang
Feb 05 2017
On Sunday, 5 February 2017 at 09:20:36 UTC, MGW wrote:// Compile executable ide5 for 64 // Компилируем для 64 разрядного варианта dmd ide5 qte5 qte5prs asc1251 ini -release -m64$ dmd ide5 qte5 qte5prs asc1251 ini -release -m64 ide5.d(130): Error: undefined identifier 'Highlighter', did you mean variable 'highlighter'?Для общения можно использовать https://vk.com/vk_dlangI haven't vk and never will have.
Feb 05 2017
On Sunday, 5 February 2017 at 10:43:38 UTC, unDEFER wrote:$ dmd ide5 qte5 qte5prs asc1251 ini -release -m64 ide5.d(130): Error: undefined identifier 'Highlighter', did you mean variable 'highlighter'?Скорее всего qte5.d взята из примеров, а правильная есть: QtE5-master/source/qte5.dЯ тоже не имею аккаута на vk.com, но это не мешает мне общаться с русcкоязычным сообществом D.Для общения можно использовать https://vk.com/vk_dlangI haven't vk and never will have.
Feb 05 2017
On Sunday, 5 February 2017 at 14:37:48 UTC, MGW wrote:On Sunday, 5 February 2017 at 10:43:38 UTC, unDEFER wrote:Can't load libQtE5Widgets64.so from current directory. Tried $ export LD_LIBRARY_PATH=`pwd`; ./ide5 -i pr1.ini $ export LIBRARY_PATH=`pwd`; ./ide5 -i pr1.ini $ sudo ldconfig `pwd` Nothing helps..$ dmd ide5 qte5 qte5prs asc1251 ini -release -m64 ide5.d(130): Error: undefined identifier 'Highlighter', did you mean variable 'highlighter'?Скорее всего qte5.d взята из примеров, а правильная есть: QtE5-master/source/qte5.dMaybe is good link, but it closes tab in firefox, own and tab opened before..Я тоже не имею аккаута на vk.com, но это не мешает мне общаться с русcкоязычным сообществом D.Для общения можно использовать https://vk.com/vk_dlangI haven't vk and never will have.
Feb 05 2017
On Sunday, 5 February 2017 at 16:16:42 UTC, unDEFER wrote:On Sunday, 5 February 2017 at 14:37:48 UTC, MGW wrote:Can't load libQtE5Widgets64.so from current directory. Tried $ export LD_LIBRARY_PATH=`pwd`; ./ide5 -i pr1.ini $ export LIBRARY_PATH=`pwd`; ./ide5 -i pr1.ini $ sudo ldconfig `pwd` Nothing helps..Existence of Qt-5, including QScript is necessary. You have to provide existence of dependent libraries. [gena localhost qte5]$ ldd libQtE5Widgets64.so linux-vdso.so.1 (0x00007fff03a2c000) libQt5Widgets.so.5 => /lib64/libQt5Widgets.so.5 (0x00007f20b01c2000) libQt5Gui.so.5 => /lib64/libQt5Gui.so.5 (0x00007f20afd1a000) libQt5Script.so.5 => /lib64/libQt5Script.so.5 (0x00007f20afa7a000) libQt5Core.so.5 => /lib64/libQt5Core.so.5 (0x00007f20af5ea000) libGL.so.1 => /usr/lib64/libglvnd/libGL.so.1 (0x00007f20af36a000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f20af14a000) libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f20aedc2000) libm.so.6 => /lib64/libm.so.6 (0x00007f20aeab2000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f20ae89a000) libc.so.6 => /lib64/libc.so.6 (0x00007f20ae4d2000) libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007f20ae26a000) libz.so.1 => /lib64/libz.so.1 (0x00007f20ae052000) libpng16.so.16 => /lib64/libpng16.so.16 (0x00007f20ade1a000) libicui18n.so.57 => /lib64/libicui18n.so.57 (0x00007f20ad9a2000) libicuuc.so.57 => /lib64/libicuuc.so.57 (0x00007f20ad5f2000) libicudata.so.57 => /lib64/libicudata.so.57 (0x00007f20abb72000) libpcre16.so.0 => /lib64/libpcre16.so.0 (0x00007f20ab902000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f20ab6fa000) libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x00007f20ab4f2000) libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007f20ab1da000) librt.so.1 => /lib64/librt.so.1 (0x00007f20aafd2000) libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007f20aaf42000) /lib64/ld-linux-x86-64.so.2 (0x000055c9c7ae9000) libGLX.so.0 => /lib64/libGLX.so.0 (0x00007f20aad0a000) libX11.so.6 => /lib64/libX11.so.6 (0x00007f20aa9ca000) libXext.so.6 => /lib64/libXext.so.6 (0x00007f20aa7b2000) libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x00007f20aa4da000) libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007f20aa21a000) libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007f20a9fea000) libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f20a9d72000) libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f20a9b52000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f20a992a000) libcap.so.2 => /lib64/libcap.so.2 (0x00007f20a9722000) liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f20a94fa000) liblz4.so.1 => /lib64/liblz4.so.1 (0x00007f20a92e2000) libgcrypt.so.20 => /lib64/libgcrypt.so.20 (0x00007f20a8ffa000) libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007f20a8de2000) libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f20a8bba000) libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f20a89aa000) libXau.so.6 => /lib64/libXau.so.6 (0x00007f20a87a2000)
Feb 05 2017
On Sunday, 5 February 2017 at 17:11:02 UTC, MGW wrote:On Sunday, 5 February 2017 at 16:16:42 UTC, unDEFER wrote:I have: ./libQtE5Widgets64.so: /usr/lib/x86_64-linux-gnu/libQt5Script.so.5: version `Qt_5' not found (required by ./libQtE5Widgets64.so) ./libQtE5Widgets64.so: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.6' not found (required by ./libQtE5Widgets64.so) ./libQtE5Widgets64.so: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5' not found (required by ./libQtE5Widgets64.so) ./libQtE5Widgets64.so: /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5: version `Qt_5' not found (required by ./libQtE5Widgets64.so) ./libQtE5Widgets64.so: /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5: version `Qt_5' not found (required by ./libQtE5Widgets64.so) Although e.g. $ ls -l /usr/lib/x86_64-linux-gnu/libQt5Script.so.5 lrwxrwxrwx 1 root root 21 ноя 30 2015 /usr/lib/x86_64-linux-gnu/libQt5Script.so.5 -> libQt5Script.so.5.5.1 $ ls -l /usr/lib/x86_64-linux-gnu/libQt5Script.so.5.5.1 -rw-r--r-- 1 root root 2508384 ноя 30 2015 /usr/lib/x86_64-linux-gnu/libQt5Script.so.5.5.1 Seems you want Qt 5.6On Sunday, 5 February 2017 at 14:37:48 UTC, MGW wrote:Can't load libQtE5Widgets64.so from current directory. Tried $ export LD_LIBRARY_PATH=`pwd`; ./ide5 -i pr1.ini $ export LIBRARY_PATH=`pwd`; ./ide5 -i pr1.ini $ sudo ldconfig `pwd` Nothing helps..Existence of Qt-5, including QScript is necessary. You have to provide existence of dependent libraries.
Feb 05 2017