mirror of
https://github.com/rabbibotton/clog.git
synced 2025-12-06 02:30:42 -08:00
grep from menu
This commit is contained in:
parent
816f07b7a7
commit
ed790a7e98
7 changed files with 67 additions and 9 deletions
|
|
@ -694,8 +694,11 @@ clog-body. If main-menu add as main menu bar."))
|
||||||
(defmethod create-gui-menu-drop-down ((obj clog-gui-menu-bar)
|
(defmethod create-gui-menu-drop-down ((obj clog-gui-menu-bar)
|
||||||
&key (content "")
|
&key (content "")
|
||||||
(class *menu-bar-drop-down-class*)
|
(class *menu-bar-drop-down-class*)
|
||||||
|
(right-align nil)
|
||||||
(html-id nil))
|
(html-id nil))
|
||||||
(let* ((hover (create-div obj :class "w3-dropdown-hover"))
|
(let* ((hover (create-div obj :class (if right-align
|
||||||
|
"w3-right w3-dropdown-hover"
|
||||||
|
"w3-dropdown-hover")))
|
||||||
(button (create-button hover :class "w3-button" :content content))
|
(button (create-button hover :class "w3-button" :content content))
|
||||||
(div (create-div hover :class class :html-id html-id)))
|
(div (create-div hover :class class :html-id html-id)))
|
||||||
(declare (ignore button))
|
(declare (ignore button))
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,39 @@
|
||||||
(declare (ignore obj))
|
(declare (ignore obj))
|
||||||
(when (current-editor-is-lisp app)
|
(when (current-editor-is-lisp app)
|
||||||
(on-new-sys-browser editor :search data))))
|
(on-new-sys-browser editor :search data))))
|
||||||
|
;; find symbol in file search
|
||||||
|
(js-execute editor
|
||||||
|
(format nil
|
||||||
|
"~A.commands.addCommand({
|
||||||
|
name: 'find-definition',
|
||||||
|
bindKey: {win: 'Alt-,', mac: 'Command-,'},
|
||||||
|
exec: function(editor) {
|
||||||
|
var row = editor.selection.getCursor().row;
|
||||||
|
var column = editor.selection.getCursor().column;
|
||||||
|
var c;
|
||||||
|
while (column > 0) {
|
||||||
|
c=editor.session.getTextRange(new ace.Range(row, column-1, row, column));
|
||||||
|
if (c=='(' || c==' ') { break; }
|
||||||
|
column--;
|
||||||
|
}
|
||||||
|
var s=column;
|
||||||
|
while (column < 200) {
|
||||||
|
c=editor.session.getTextRange(new ace.Range(row, column, row, column+1));
|
||||||
|
if (c==')' || c==' ') { break; }
|
||||||
|
column++;
|
||||||
|
}
|
||||||
|
c = editor.session.getTextRange(new ace.Range(row, s, row, column));
|
||||||
|
~A.trigger('clog-search', c);
|
||||||
|
},
|
||||||
|
readOnly: true,
|
||||||
|
});"
|
||||||
|
(clog-ace::js-ace editor)
|
||||||
|
(jquery editor)))
|
||||||
|
(set-on-event-with-data editor "clog-search"
|
||||||
|
(lambda (obj data)
|
||||||
|
(declare (ignore obj))
|
||||||
|
(when (current-editor-is-lisp app)
|
||||||
|
(on-file-search editor :search data))))
|
||||||
;; setup save key
|
;; setup save key
|
||||||
(js-execute editor
|
(js-execute editor
|
||||||
(format nil
|
(format nil
|
||||||
|
|
|
||||||
|
|
@ -273,6 +273,7 @@
|
||||||
(setf (advisory-title load-btn) "Click to load")
|
(setf (advisory-title load-btn) "Click to load")
|
||||||
(setf (background-color load-btn) :tomato)
|
(setf (background-color load-btn) :tomato)
|
||||||
(setf (current-project app) sel)
|
(setf (current-project app) sel)
|
||||||
|
(setf (current-project-dir app) root)
|
||||||
(create-clog-tree tree
|
(create-clog-tree tree
|
||||||
:fill-function (lambda (obj)
|
:fill-function (lambda (obj)
|
||||||
(project-tree-dir-select obj dir))
|
(project-tree-dir-select obj dir))
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,11 @@
|
||||||
(in-package :clog-tools)
|
(in-package :clog-tools)
|
||||||
|
|
||||||
(defun on-file-search (obj &key (dir ""))
|
(defun on-file-search (obj &key dir search doc-maximize)
|
||||||
"Open file search"
|
"Open file search"
|
||||||
(let* ((app (connection-data-item obj "builder-app-data"))
|
(let* ((app (connection-data-item obj "builder-app-data"))
|
||||||
(*default-title-class* *builder-title-class*)
|
(*default-title-class* *builder-title-class*)
|
||||||
(*default-border-class* *builder-border-class*)
|
(*default-border-class* *builder-border-class*)
|
||||||
(win (create-gui-window obj :title (format nil "Search in ~A"
|
(win (create-gui-window obj :top (+ (menu-bar-height obj) 20)
|
||||||
dir)
|
|
||||||
:top (+ (menu-bar-height obj) 20)
|
|
||||||
:left 20
|
:left 20
|
||||||
:width 1040 :height 600
|
:width 1040 :height 600
|
||||||
:client-movement *client-side-movement*))
|
:client-movement *client-side-movement*))
|
||||||
|
|
@ -17,6 +15,8 @@
|
||||||
(clog-ace:resize (preview-ace panel))))
|
(clog-ace:resize (preview-ace panel))))
|
||||||
(setf (current-editor-is-lisp app) "clog-user")
|
(setf (current-editor-is-lisp app) "clog-user")
|
||||||
(setup-lisp-ace (preview-ace panel) nil)
|
(setup-lisp-ace (preview-ace panel) nil)
|
||||||
|
(setf (text-value (preview-ace panel))
|
||||||
|
";; After search, double click file name to open / single click to preview")
|
||||||
(set-on-window-focus win
|
(set-on-window-focus win
|
||||||
(lambda (obj)
|
(lambda (obj)
|
||||||
(declare (ignore obj))
|
(declare (ignore obj))
|
||||||
|
|
@ -39,7 +39,18 @@
|
||||||
(clog-ace::js-ace (preview-ace panel)) regex))
|
(clog-ace::js-ace (preview-ace panel)) regex))
|
||||||
(clog-ace:execute-command (preview-ace panel) "find"))
|
(clog-ace:execute-command (preview-ace panel) "find"))
|
||||||
(focus (result-box panel))))
|
(focus (result-box panel))))
|
||||||
(setf (text-value (dir-input panel)) dir)))
|
(unless dir
|
||||||
|
(setf dir (if (and (current-project-dir app)
|
||||||
|
(not (equal (current-project-dir app) "")))
|
||||||
|
(current-project-dir app)
|
||||||
|
(uiop:getcwd))))
|
||||||
|
(setf (text-value (dir-input panel)) dir)
|
||||||
|
(panel-search-dir-change panel (dir-input panel))
|
||||||
|
(when doc-maximize
|
||||||
|
(window-maximize win))
|
||||||
|
(when search
|
||||||
|
(setf (text-value (grep-input panel)) search)
|
||||||
|
(panel-search-on-click panel nil))))
|
||||||
|
|
||||||
(defun panel-search-dir-change (panel target)
|
(defun panel-search-dir-change (panel target)
|
||||||
(setf (window-title (parent (parent panel)))
|
(setf (window-title (parent (parent panel)))
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,7 @@
|
||||||
(defparameter *builder-pallete-class* "w3-light-grey w3-small")
|
(defparameter *builder-pallete-class* "w3-light-grey w3-small")
|
||||||
(defparameter *builder-event-list-class* "w3-light-grey w3-small")
|
(defparameter *builder-event-list-class* "w3-light-grey w3-small")
|
||||||
(defparameter *builder-panel-class* "w3-white w3-sans-serif w3-medium")
|
(defparameter *builder-panel-class* "w3-white w3-sans-serif w3-medium")
|
||||||
(defparameter *builder-menu-search-class* "w3-right w3-gray w3-bar-item")
|
(defparameter *builder-menu-search-class* "w3-border w3-light-grey w3-bar-item")
|
||||||
|
|
||||||
;; Menus
|
;; Menus
|
||||||
(defparameter *builder-menu-bar-class* "w3-bar w3-round w3-small w3-blue-grey w3-card-4")
|
(defparameter *builder-menu-bar-class* "w3-bar w3-round w3-small w3-blue-grey w3-card-4")
|
||||||
|
|
|
||||||
|
|
@ -411,6 +411,7 @@ clog-builder window.")
|
||||||
(opts (create-gui-menu-drop-down menu :content "Options"))
|
(opts (create-gui-menu-drop-down menu :content "Options"))
|
||||||
(win (create-gui-menu-drop-down menu :content "Window"))
|
(win (create-gui-menu-drop-down menu :content "Window"))
|
||||||
(help (create-gui-menu-drop-down menu :content "Help"))
|
(help (create-gui-menu-drop-down menu :content "Help"))
|
||||||
|
search
|
||||||
sysbrw)
|
sysbrw)
|
||||||
(declare (ignore icon))
|
(declare (ignore icon))
|
||||||
;; Menu -> File
|
;; Menu -> File
|
||||||
|
|
@ -558,10 +559,19 @@ clog-builder window.")
|
||||||
(create-gui-menu-item help :content "About CLOG Builder" :on-click #'on-help-about-builder)
|
(create-gui-menu-item help :content "About CLOG Builder" :on-click #'on-help-about-builder)
|
||||||
(create-gui-menu-window-select menu)
|
(create-gui-menu-window-select menu)
|
||||||
(create-gui-menu-full-screen menu)
|
(create-gui-menu-full-screen menu)
|
||||||
(setf sysbrw (create-form-element menu :search :class *builder-menu-search-class*))
|
(setf search (create-gui-menu-drop-down menu :content
|
||||||
|
"
|
||||||
|
|
||||||
|
👁" :right-align t))
|
||||||
|
(setf sysbrw (create-form-element search :search :class *builder-menu-search-class*))
|
||||||
(setf (place-holder sysbrw) "system browse.. (alt-.)")
|
(setf (place-holder sysbrw) "system browse.. (alt-.)")
|
||||||
(set-on-change sysbrw (lambda (obj)
|
(set-on-change sysbrw (lambda (obj)
|
||||||
(on-new-sys-browser obj :search (text-value obj) :doc-maximize t)
|
(on-new-sys-browser obj :search (text-value obj) :doc-maximize t)
|
||||||
|
(setf (text-value obj) "")))
|
||||||
|
(setf sysbrw (create-form-element search :search :class *builder-menu-search-class*))
|
||||||
|
(setf (place-holder sysbrw) "regex search.. (alt-,)")
|
||||||
|
(set-on-change sysbrw (lambda (obj)
|
||||||
|
(on-file-search obj :search (text-value obj) :doc-maximize t)
|
||||||
(setf (text-value obj) ""))))
|
(setf (text-value obj) ""))))
|
||||||
(on-show-copy-history-win body)
|
(on-show-copy-history-win body)
|
||||||
(cond
|
(cond
|
||||||
|
|
|
||||||
2
tools/preferences.lisp.sample
vendored
2
tools/preferences.lisp.sample
vendored
|
|
@ -120,7 +120,7 @@
|
||||||
(setf *builder-pallete-class* "w3-light-grey w3-small")
|
(setf *builder-pallete-class* "w3-light-grey w3-small")
|
||||||
(setf *builder-event-list-class* "w3-light-grey w3-small")
|
(setf *builder-event-list-class* "w3-light-grey w3-small")
|
||||||
(setf *builder-panel-class* "w3-white w3-sans-serif w3-medium")
|
(setf *builder-panel-class* "w3-white w3-sans-serif w3-medium")
|
||||||
(setf *builder-menu-search-class* "w3-right w3-gray w3-bar-item")
|
(setf *builder-menu-search-class* "w3-light-grey w3-bar-item")
|
||||||
|
|
||||||
;; Menus
|
;; Menus
|
||||||
(setf *builder-menu-bar-class* "w3-bar w3-round w3-small w3-blue-grey w3-card-4")
|
(setf *builder-menu-bar-class* "w3-bar w3-round w3-small w3-blue-grey w3-card-4")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue