This will be used for mapping your response to the model JsonConvert.DeserializeObject<Unit>(response)
public class Unit
{
public string UnitYear { get; set; }
public string UnitModel { get; set; }
}
Make sure that the property names are the same names as your json object that you are passing through
Вы видите как compile
команда делает это. Поднимите текст справки для команды компиляции с C-h f compile
, переместите курсор через название файла, который содержит функцию, затем хит RETURN
. Это поднимет исходный файл для compile
.
В основном существует динамическая / глобальная переменная compile-command
это содержит последнюю команду компиляции. Emacs является однопользовательской, однопоточной системой, таким образом, нет действительно никакой потребности в намного больше. Также имейте в виду, что Elisp является очень старой школой Lisp, и переменные имеют динамичный (стек вызовов), не лексический, объем. В этом виде системы это естественно для:
(let ((compile-command "gcc -o foo foo.c frobnicate.c"))
...
(compile)
...)
Разговор о compile
управляйте, имейте Вас, пытался использовать его вместо Вашего собственного run-rake
функция?
read-from-minibuffer
то, что Вы хотите использовать. Это имеет место для переменной истории.
Вот некоторый пример кода:
(defvar run-rake-history nil "History for run-rake")
(defun run-rake (cmd)
(interactive (list (read-from-minibuffer "Task: " (car run-rake-history) nil nil 'run-rake-history)))
(shell-command (format "rake %s " cmd)))
Очевидно, настройте к своим потребностям. 'История граблей выполнения является просто переменной, которая используется для хранения истории для этого вызова 'read-from-minibuffer. Другая опция состояла бы в том, чтобы использовать 'считанный из завершения - но это предполагает, что у Вас есть список выбора, Вы хотите ограничить пользователя использованием (который обычно не имеет место для подобных оболочке команд).
Я выяснил, как сделать это вручную использование (глобального) defvar, но это чувствует себя подобно виду вещи, которая должна уже быть обеспечена оперативной библиотекой (отчасти как делать-параметр схемы). Это просто походит на большее количество кода и больше руководства, чем это должно быть:
(defvar *editconf-ruby-run-rake-last-rake-task* nil)
(defun editconf-ruby-run-rake-last-rake-task (&optional new-val)
(when new-val
(setf *editconf-ruby-run-rake-last-rake-task* new-val))
*editconf-ruby-run-rake-last-rake-task*)
(defun editconf-ruby-run-rake (task-name)
"Execute rake `task-name'. See
`krb-ruby-get-rakefile-path-for-current-buffer' for how the
Rakefile is located.."
(interactive
(let* ((rakefile (krb-ruby-get-rakefile-path-for-current-buffer))
(rake-tasks (krb-ruby-get-rake-tasks rakefile))
(default-task (or (editconf-ruby-run-rake-last-rake-task)
(editconf-ruby-run-rake-last-rake-task (car rake-tasks)))))
(list
(read-string (format "Task [%s|%s]: "
rake-tasks
default-task)
nil nil default-task))))
(editconf-ruby-run-rake-last-rake-task task-name)
(let ((cmd (format "cd %s; rake %s"
(krb-lisp-strip-path-suffix rakefile 1)
task-name)))
(message "editconf-ruby-run-rake: cmd='%s'" cmd)
(shell-command cmd)))