Неправильный запуск пролога в SublimeREPL

Я хочу использовать Prolog в SublimeREPL. Я правильно настроил интерпретатор (swipl или gprolog) в конфигурационном файле SublimeREPL, и все работает нормально, за исключением одного: the start character "?-" строки никогда не отображаются, и если я получаю результат вроде "X=1", когда я нажимаю Enter, что происходит в терминал печатает точку "X=1." и создает новую строку, начинающуюся с "?-". В SublimeREPL нет точки, и новая строка ни с чего не начинается. Есть ли решение для такого же поведения терминала?


person Chiara Doppiomalto    schedule 31.08.2013    source источник


Ответы (1)


У меня есть частичный успех с Sublime Text 2, работающим в MacOS X, с использованием следующего содержимого файла Main.sublime-menu:

[
     {
        "id": "tools",
        "children":
        [{
            "caption": "SublimeREPL",
            "mnemonic": "r",
            "id": "SublimeREPL",
            "children":
            [
                {"command": "repl_open", 
                 "caption": "Prolog",
                 "id": "repl_prolog",
                 "mnemonic": "l",
                 "args": {
                    "type": "subprocess",
                    "encoding": "utf8",
                    "cmd": ["gprolog"],
                    "cwd": "$file_path",
                    "external_id": "prolog",
                    "syntax": "Packages/Logtalk/Logtalk.tmLanguage"
                    }
                }
            ]   
        }]
    }
]

Я получаю баннер запуска GNU Prolog, могу вводить запросы и получать результаты запросов. Но есть проблема, которую я еще не решил с обработкой новых строк: когда я набираю ;, чтобы запросить у интерпретатора Пролога следующее доказательство, я не могу получить последнее. Например:

GNU Prolog 1.4.4 (64 bits)
Compiled Apr 23 2013, 17:24:33 with /opt/local/bin/gcc-apple-4.2
By Daniel Diaz
Copyright (C) 1999-2013 Daniel Diaz
| ?- member(X, [1,2,3]).


X = 1 ? ;
;

X = 2 ? 

yes
| ?- 

Кажется, проблема с обработкой эха и новых строк. Первый ; повторяется, но затем у меня нет возможности ввести второй ; после получения второго решения.

person Paulo Moura    schedule 31.08.2013
comment
Используя SWI-Prolog в качестве интерпретатора, я также не получаю приглашение, но нет проблем с ; при просмотре всех решений. - person Paulo Moura; 31.08.2013
comment
Я пробовал с вашими настройками, но ничего не изменилось (я использую Linux Mint). - person Chiara Doppiomalto; 31.08.2013
comment
Какие версии GNU Prolog и SWI-Prolog вы используете? В своих тестах я использовал GNU Prolog 1.4.4 и SWI-Prolog 6.5.2. - person Paulo Moura; 31.08.2013
comment
GNU Prolog 1.3.0 и swipl 5.10.4 (это версия, которую я установил через apt-get) - person Chiara Doppiomalto; 31.08.2013
comment
Это очень старые версии. Возможно, стоит установить последние, скомпилировав из исходников, и попробовать еще раз. - person Paulo Moura; 31.08.2013
comment
Обновление до gprolog 1.4.2 ничего не меняет. Проблема не в старой версии. - person Chiara Doppiomalto; 31.08.2013
comment
@PauloMoura, не могли бы вы рассказать мне, как настроить sublimeREPL в Windows? Я скачал это для Windows swi -prolog.org/download/stable, но я не знаю, как установить его в sublimeREPL, кроме того, я скачал плагин пролога на ST2 и не смог найти способ его интерпретировать. - person Tarek; 05.10.2013
comment
Я не пользователь Windows, но предполагаю, что конфигурация будет аналогична той, что я написал выше. Вероятно, вам потребуется убедиться, что исполняемый файл SWI-Prolog можно найти с помощью системной переменной PATH. Однако не уверен, что вы подразумеваете под интерпретацией плагина. Плагин представляет собой каталог, и внутри него вы должны найти файл синтаксиса Prolog, путь которого ведет к конфигурации REPL. - person Paulo Moura; 05.10.2013