Here's a hack for enabling tab name completion in jhs:

Paste this into your javascript console, and then start typing an
identifier and hit tab for it to complete and then ENTER to get to the end
of line.

Future versions could cycle through options on tab or show a little inline
popup to choose the identifier

A person could make this a bookmarklet or hack the jhs javascript to
include it

It will query for names in the base locale

There's likely a better way than parsing the html that comes back from
executing the jdo, but it works for my simple cases so far

var jdojs = function(sentence, cb) {
  rq= newrq();
  rq.onreadystatechange= cb;
  rq.open("POST",jform.jlocale.value,true); // true for async call
  jform.jdo.value= ('undefined'==typeof sentence)?jevsentence:sentence;
  rq.send(jpostargs([])+"&jdata="+jencode(""));
}

document.addEventListener('keydown', function(e) {
  if (e.keyCode == 9) {
    var rows =
document.getElementById('jresizeb').getElementsByTagName("div");
    var current =
rows[rows.length-1].innerHTML.replace(/ /g,'').trim();

    //query names in the base locale
    jdojs("names_base_ ''", function(x) {
      if (rq.readyState == 4) {
        var names = rq.responseText.replace(/ /g,'
').replace(/<br>/g,'');
        var key = 'class="fm">';
        names = names.substring(names.indexOf(key)+key.length)
        names = names.split(' ');
        for(var i = 0; i < names.length; i++) {
          if (names[i].indexOf(current) == 0) {
              rows[rows.length-1].innerHTML = '<div
class="fm">&nbsp;&nbsp;&nbsp;' + names[i] + '</div>';
          }
        }
      }
    })

    e.preventDefault();
  }
})



On Fri, May 16, 2014 at 11:04 PM, Raul Miller <[email protected]> wrote:

> I ran jqt as a regular user. I had to use root, though, to install the
> qtide, and to inspect the operating system's view of the mapped files.
>
> In /usr/.ib/x86_64-linux-gnu/ I see:
>
> /usr/lib/x86_64-linux-gnu/libjqt.so
> /usr/lib/x86_64-linux-gnu/libj.so.8.0.1
>
> I do not see the link libj.so. I can create it manually, but I would prefer
> to understand what step of the process was supposed to create it.
> (Actually, I did create it manually, but that was not sufficient to get jqt
> working.)
>
> I do not see any evidence of any external references to libedit, but
> perhaps it was compiled into ijconsole?
>
> Also: not too long ago, I talked briefly with Ramakrishnan Muthukrishnan (
> [email protected]) and he expressed some interest in getting J
> packaged
> for Debian. If you like, I can ask him to get in contact with you? There's
> actually a lot of little details that probably will need to be addressed -
> it's not going to be quick - but I'm sure that between us we can sort them
> out.
>
> Thanks,
>
> --
> Raul
>
>
>
> On Fri, May 16, 2014 at 10:36 PM, bill lam <[email protected]> wrote:
>
> > Sorry for confusion, with reference to libreadline, I assumed
> > your context was jconsole not jqt. Also linux jconsole might
> > already swtiched to libedit to avoid GPL restriction.
> >
> > Thank you for correcting the package name for jlang. install'qtide'
> > might not intatll binaries to the correct places for root user,
> > for debian derivative, they should be to
> >
> > /usr/bin/jqt
> > /usr/lib/x86_64-linux-gnu/libjqt.so
> >
> > please also check there is a file
> > /usr/lib/x86_64-linux-gnu/libj.so
> >
> > which is a symlink to
> > /usr/lib/x86_64-linux-gnu/libj.so.8.0.1
> >
> > or vice versa.
> >
> > run jqt as a regular user.
> >
> > A debian package for jqt should be created instead of running
> > intall'qtide' but lack of experience in debian package.
> >
> > Пт, 16 май 2014, Raul Miller писал(а):
> > > That's an interesting question.
> > >
> > > I took a look at my windows installation of j64-801 and did not find
> any
> > > reference to libreadline. I think it was used in older jconsoles.
> > >
> > > So I went to a linux box and installed j64-801 (using the
> > j801_amd64.deb).
> > > As root:
> > >
> > > apt-get install libqtcore4 libqtgui4 libqt4-opengl libqtwebkit4
> > > dpkg -i j801_amd64.deb
> > > ijconsole
> > >    install 'qtide'
> > >
> > > But that did not actually work. When I run jqt, it gives me:
> > > "libjqt.so"
> > > "could not resolve: state_run:
> > >
> > > Cannot load library libjqt.so: (libjqt.so: cannot open shared object
> > file:
> > > No such file or directory)"
> > >
> > > (As an aside, note that j801_amd64.deb installs package named jlang so
> > > technically the file should be named jlang_801_amd64.deb.)
> > >
> > > Still, I do not see any evidence that jqt has libreadline statically
> > linked:
> > >
> > > $ ldd `which jqt`
> > >         linux-vdso.so.1 =>  (0x00007fffef3fe000)
> > >         libQtGui.so.4 => /usr/lib/x86_64-linux-gnu/libQtGui.so.4
> > > (0x00007f25448e8000)
> > >         libQtCore.so.4 => /usr/lib/x86_64-linux-gnu/libQtCore.so.4
> > > (0x00007f2544407000)
> > >         libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
> > > (0x00007f25441e9000)
> > >         libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
> > > (0x00007f2543ee5000)
> > >         libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6
> (0x00007f2543be1000)
> > >         libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
> > > (0x00007f25439ca000)
> > >         libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
> (0x00007f2543602000)
> > >         libfontconfig.so.1 =>
> > /usr/lib/x86_64-linux-gnu/libfontconfig.so.1
> > > (0x00007f25433c6000)
> > >         libaudio.so.2 => /usr/lib/x86_64-linux-gnu/libaudio.so.2
> > > (0x00007f25431ad000)
> > >         libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0
> > > (0x00007f2542eac000)
> > >         libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0
> > > (0x00007f2542c86000)
> > >         libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1
> (0x00007f2542a6c000)
> > >         libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6
> > > (0x00007f25427ca000)
> > >         libgobject-2.0.so.0 =>
> > > /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f2542579000)
> > >         libSM.so.6 => /usr/lib/x86_64-linux-gnu/libSM.so.6
> > > (0x00007f2542370000)
> > >         libICE.so.6 => /usr/lib/x86_64-linux-gnu/libICE.so.6
> > > (0x00007f2542154000)
> > >         libXi.so.6 => /usr/lib/x86_64-linux-gnu/libXi.so.6
> > > (0x00007f2541f44000)
> > >         libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1
> > > (0x00007f2541d39000)
> > >         libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6
> > > (0x00007f2541b27000)
> > >         libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6
> > > (0x00007f25417f2000)
> > >         libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
> > (0x00007f25415ed000)
> > >         librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1
> > (0x00007f25413e5000)
> > >         /lib64/ld-linux-x86-64.so.2 (0x00007f25455a5000)
> > >         libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1
> > > (0x00007f25411ba000)
> > >         libXt.so.6 => /usr/lib/x86_64-linux-gnu/libXt.so.6
> > > (0x00007f2540f54000)
> > >         libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6
> > > (0x00007f2540d50000)
> > >         libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3
> > > (0x00007f2540b10000)
> > >         libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6
> > > (0x00007f2540908000)
> > >         libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1
> > > (0x00007f2540703000)
> > >         libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1
> > > (0x00007f25404e4000)
> > >         libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6
> > > (0x00007f25402de000)
> > >
> > > Nor do I see any evidence that it is dynamically linked. Here's
> plausible
> > > candidates for dynamic linking:
> > >
> > > $ strings /usr/bin/ijconsole | grep lib | fgrep .so | sort -u
> > > /lib64/ld-linux-x86-64.so.2
> > > libc.so.6
> > > libdl.so.2
> > > libj.so
> > > $ strings /usr/bin/jqt | grep lib | fgrep .so | sort -u
> > > /lib64/ld-linux-x86-64.so.2
> > > libc.so.6
> > > libgcc_s.so.1
> > > libjqt.so
> > > libm.so.6
> > > libpthread.so.0
> > > libQtCore.so.4
> > > libQtGui.so.4
> > > libstdc++.so.6
> > > $
> > >
> > > Also, here's what mapped files look like for ijconsole when it's
> running:
> > >
> > > /proc/9980# ls -l map_files/
> > > total 0
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 400000-406000 ->
> > > /usr/bin/ijconsole-8.0.1
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 606000-607000 ->
> > > /usr/bin/ijconsole-8.0.1
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 7f27e5891000-7f27e5994000 ->
> > > /lib/x86_64-linux-gnu/libm-2.17.so
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 7f27e5994000-7f27e5b93000 ->
> > > /lib/x86_64-linux-gnu/libm-2.17.so
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 7f27e5b93000-7f27e5b94000 ->
> > > /lib/x86_64-linux-gnu/libm-2.17.so
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 7f27e5b94000-7f27e5b95000 ->
> > > /lib/x86_64-linux-gnu/libm-2.17.so
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 7f27e5b95000-7f27e5d89000 ->
> > > /usr/lib/x86_64-linux-gnu/libj.so.8.0.1
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 7f27e5d89000-7f27e5e89000 ->
> > > /usr/lib/x86_64-linux-gnu/libj.so.8.0.1
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 7f27e5e89000-7f27e5ea8000 ->
> > > /usr/lib/x86_64-linux-gnu/libj.so.8.0.1
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 7f27e5eac000-7f27e6069000 ->
> > > /lib/x86_64-linux-gnu/libc-2.17.so
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 7f27e6069000-7f27e6269000 ->
> > > /lib/x86_64-linux-gnu/libc-2.17.so
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 7f27e6269000-7f27e626d000 ->
> > > /lib/x86_64-linux-gnu/libc-2.17.so
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 7f27e626d000-7f27e626f000 ->
> > > /lib/x86_64-linux-gnu/libc-2.17.so
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 7f27e6274000-7f27e6277000 ->
> > > /lib/x86_64-linux-gnu/libdl-2.17.so
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 7f27e6277000-7f27e6476000 ->
> > > /lib/x86_64-linux-gnu/libdl-2.17.so
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 7f27e6476000-7f27e6477000 ->
> > > /lib/x86_64-linux-gnu/libdl-2.17.so
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 7f27e6477000-7f27e6478000 ->
> > > /lib/x86_64-linux-gnu/libdl-2.17.so
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 7f27e6478000-7f27e649b000 ->
> > > /lib/x86_64-linux-gnu/ld-2.17.so
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 7f27e6503000-7f27e668c000 ->
> > > /usr/lib/locale/locale-archive
> > > lrw------- 1 ubuntu ubuntu 64 May 17 02:01 7f27e6690000-7f27e6691000 ->
> > > /home/ubuntu/j64-801-user/break/9980.default
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 7f27e6691000-7f27e6698000 ->
> > > /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 7f27e669a000-7f27e669b000 ->
> > > /lib/x86_64-linux-gnu/ld-2.17.so
> > > lr-------- 1 ubuntu ubuntu 64 May 17 02:01 7f27e669b000-7f27e669d000 ->
> > > /lib/x86_64-linux-gnu/ld-2.17.so
> > >
> > > I'd poke around further, but I should probably wait for
> > > http://www.jsoftware.com/jwiki/Guides/Qt%20IDE/Install to be updated?
> > I'll
> > > note that the instructions for the base j801 system do not actually
> > mention
> > > /usr/bin/ijconsole and instead mention ~/j801/bin/jconsole (which of
> > course
> > > is not installed).
> > >
> > > Perhaps I should have installed something different?
> > >
> > > Thanks,
> > >
> > > --
> > > Raul
> > >
> > >
> > >
> > > On Fri, May 16, 2014 at 8:22 PM, bill lam <[email protected]> wrote:
> > >
> > > > I suspect J engine does not know the image address of libreadline
> that
> > > > jconsole had loaded without some hacking.  Whether 15!:0 will load
> the
> > > > shared object into a different address or use the same image
> address, I
> > > > don't know.
> > > >
> > > > Or was libreadline static linked?
> > > >
> > > > On 17.05.2014, at 1:00, Raul Miller <[email protected]> wrote:
> > > >
> > > > > It might also be possible to do using 15!: and libreadline c api?
> > > > >
> > > > > I am not sure, I've not tried that so do not know what obstacles
> you
> > > > would
> > > > > encounter?
> > > > >
> > > > > Thanks,
> > > > >
> > > > > --
> > > > > Raul
> > > > >
> > > > >
> > > > > On Fri, May 16, 2014 at 10:26 AM, bill lam <[email protected]>
> > wrote:
> > > > >
> > > > >> Almost all sm cmd had been removed because qtide is now written in
> > c++.
> > > > >> Hotkey binding are also hardcoded using c++ IIRC.  Therefore I
> > suspect
> > > > name
> > > > >> completion is doable but it needs to be done by working on qtide
> c++
> > > > >> source.
> > > > >> On May 16, 2014 9:29 PM, "Andrew Nikitin" <[email protected]>
> > wrote:
> > > > >>
> > > > >>> In J602 wd environment I use name completion a lot (
> > > > >>> http://www.jsoftware.com/jwiki/AndrewNikitin/namecomplete ) and
> > got
> > > > used
> > > > >>> to it quite a bit.
> > > > >>>
> > > > >>> It uses sm* family of verbs to extract partial name to the left
> of
> > the
> > > > >>> cursor, look up matching names in current and path locales and
> > complete
> > > > >> it.
> > > > >>> This all is bound to hotkey.
> > > > >>>
> > > > >>> As I am trying to transition myself to newer version, I wonder if
> > > > similar
> > > > >>> trick is possible in J8* console?
> > > > >>> Is there a hotkey bounding?
> > > > >>>
> > ----------------------------------------------------------------------
> > > > >>> For information about J forums see
> > http://www.jsoftware.com/forums.htm
> > > > >>>
> > > > >>
> > ----------------------------------------------------------------------
> > > > >> For information about J forums see
> > http://www.jsoftware.com/forums.htm
> > > > >>
> > > > >
> > ----------------------------------------------------------------------
> > > > > For information about J forums see
> > http://www.jsoftware.com/forums.htm
> > > >
> ----------------------------------------------------------------------
> > > > For information about J forums see
> http://www.jsoftware.com/forums.htm
> > > >
> > > ----------------------------------------------------------------------
> > > For information about J forums see http://www.jsoftware.com/forums.htm
> >
> > --
> > regards,
> > ====================================================
> > GPG key 1024D/4434BAB3 2008-08-24
> > gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
> > gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> >
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to