/htmllib/luainspect.js

http://github.com/davidm/lua-inspect · JavaScript · 66 lines · 55 code · 7 blank · 4 comment · 6 complexity · de91210b822aed2c635d8c6e3bb383fa MD5 · raw file

  1. // LuaInspect (c) 2010 David Manura, MIT License.
  2. function get_line_of_domobject(obj) {
  3. var line = $(obj).text().match(/used-line:(\d+)/);
  4. if (line) { line = line[1]; }
  5. return line;
  6. }
  7. function get_linerange_of_objects(jobject) {
  8. var maxlinenum; var minlinenum;
  9. jobject.next().each(function() {
  10. var linenum = get_line_of_domobject(this);
  11. if (linenum) {
  12. minlinenum = (minlinenum==null) ? linenum : Math.min(minlinenum, linenum);
  13. maxlinenum = (maxlinenum==null) ? linenum : Math.max(maxlinenum, linenum);
  14. }
  15. });
  16. return [minlinenum, maxlinenum];
  17. }
  18. function highlight_id(aclass, enable) {
  19. var methname = enable ? "addClass" : "removeClass";
  20. $("." + aclass)[methname]("highlight");
  21. var linenums = get_linerange_of_objects($("." + aclass));
  22. if (linenums) { for (var i=linenums[0]; i <= linenums[1]; i++) {
  23. $('#L'+i)[methname]("highlight");
  24. }}
  25. }
  26. function highlightSameClass(obj, enable) {
  27. var classes = obj.attr('class').split(' ');
  28. for (var i in classes) {
  29. var aclass = classes[i];
  30. if (aclass.match(/^id\w*\d+/)) {
  31. highlight_id(aclass, enable);
  32. }
  33. }
  34. }
  35. $(document).ready(function() {
  36. $(".id").hover(
  37. function() {
  38. var tip = $(this).next('span');
  39. tip.stop(true, true).animate({opacity: "show"}, "slow");
  40. highlightSameClass($(this), true);
  41. },
  42. function() {
  43. var tip = $(this).next('span');
  44. tip.animate({opacity: "hide"}, "fast");
  45. highlightSameClass($(this), false);
  46. }
  47. );
  48. $(".keyword").hover(
  49. function() {
  50. highlightSameClass($(this), true);
  51. },
  52. function() {
  53. highlightSameClass($(this), false);
  54. }
  55. );
  56. });
  57. //.mousemove(function(kmouse) {
  58. // $tip.css({left:kmouse.pageX+15, top:kmouse.pageY+100});
  59. // })