Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 7, 2018 14:22:35

EgorSrche
Зарегистрирован: 2018-03-10
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Python скрипт для автодополнения кода для редактора Eclipse.


В редакторе Eclipse пишу lua скрипты, чтобы включить автодополнение кода нужно нажимать Ctrl+Пробел чтобы ускорить написание кода. Решил написать Python скрипт, который будет при нажатии на кнопку выполнять данную комбинацию. Мы нажимаем на кнопку, идет проверка нажата ли клавиша? Но не получается сделать эту проверку, Пожалуйста, подскажите как ее лучше сделать?

 from pynput.keyboard import Key , Controller
from pynput import *
import time
alf = ['А', 'а', 'Б', 'б', 'В', 'в', 'Г', 'г', 'Д', 'д', 'Е',
       'е', 'Ё', 'ё', 'Ж', 'ж', 'З', 'з', 'И', 'и', 'Й', 'й',
       'К', 'к', 'Л', 'л', 'М', 'м', 'Н', 'н', 'О', 'о', 'П',
       'п', 'Р', 'р', 'С', 'с', 'Т', 'т', 'У', 'у', 'Ф', 'ф',
       'Х', 'х', 'Ц', 'ц', 'Ч', 'ч', 'Ш', 'ш', 'Щ', 'щ', 'Ъ',
       'ъ', 'Ы', 'ы', 'Ь', 'ь', 'Э', 'э', 'Ю', 'ю', 'Я', 'я',
       'A','a','B','b','C','c', 'D', 'd','E', 'e','F','f','G',
       'g','H','h','I','i','J','j','K','k','L','l','M','m','N',
       'n','O','o','P','p','Q','q','R','r','S','s','T','t','U',
       'u','V','v','W', 'w','X','x','Y','y','Z','z','0','1',
       '2','3','4','5','6','7','8','9']
def k():
 import keyboard
 keyboard.press_and_release('ctrl+space')
 keyb = Controller()
 time.sleep(0.1)
 keyb.release(Key.space)
 keyb.release(Key.ctrl_r)
def on_release(key):
 for i in alf:
  if i == key:
   k()
 return False
# Collect events until released
while 1:
    with keyboard.Listener(on_release=on_release) as listener:
        listener.join()
input()

Отредактировано EgorSrche (Авг. 7, 2018 14:25:07)

Офлайн

#2 Авг. 7, 2018 15:23:56

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Python скрипт для автодополнения кода для редактора Eclipse.

это конечно будет оффтоп, но неужели это не настраивается в самом Eclipse и/или его плагинах ?



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Авг. 7, 2018 16:25:02

EgorSrche
Зарегистрирован: 2018-03-10
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Python скрипт для автодополнения кода для редактора Eclipse.

JOHN_16, У меня не получается это настроить. Легче скрипт написать

Отредактировано EgorSrche (Авг. 7, 2018 16:25:36)

Офлайн

#4 Авг. 8, 2018 01:31:49

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Python скрипт для автодополнения кода для редактора Eclipse.

EgorSrche
В редакторе Eclipse
EgorSrche
У меня не получается это настроить
Там ещё много чего не будет получаться. Эта среда своей встроенной консолью на программу на C, в которой происходил сбой Segmentation fault, показывала, что программа выполняется отлично (код ноль и тому подобное). Целый час искал ошибку в коде, пока не допёр, что надо программу в обычной консоли системы запустить, где это всё было наглядно.
А потом ещё настройки окон, которые я делал тоже целый час, просто слетели в один прекрасный день безо всякой причины.
А потом ещё прикол был, когда при сборке проекта собирались все остальные десять проектов, которые к нему не имели отношения. Причина оказалась в том, что сначала их все нужно было закрыть, чтобы они не собирались. А сама программа понять, в каком ты проекте в данный момент находишься, была не в состоянии.
Может, что-нибудь и изменилось за пять-семь лет. Но сомневаюсь, потому что основное направление программы было нацелено на красивость, а не на функциональность и удобность.



Отредактировано py.user.next (Авг. 8, 2018 01:33:49)

Офлайн

#5 Авг. 8, 2018 17:34:45

EgorSrche
Зарегистрирован: 2018-03-10
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Python скрипт для автодополнения кода для редактора Eclipse.

Вот как решил эту проблему.

 from pynput.keyboard import Key, Controller
from pynput import *
def on_press(key):
    try: k = key.char # single-char keys
    except: k = key.name # other keys
    if k in ['А', 'а', 'Б', 'б', 'В', 'в', 'Г', 'г', 'Д', 'д', 'Е',
       'е', 'Ё', 'ё', 'Ж', 'ж', 'З', 'з', 'И', 'и', 'Й', 'й',
       'К', 'к', 'Л', 'л', 'М', 'м', 'Н', 'н', 'О', 'о', 'П',
       'п', 'Р', 'р', 'С', 'с', 'Т', 'т', 'У', 'у', 'Ф', 'ф',
       'Х', 'х', 'Ц', 'ц', 'Ч', 'ч', 'Ш', 'ш', 'Щ', 'щ', 'Ъ',
       'ъ', 'Ы', 'ы', 'Ь', 'ь', 'Э', 'э', 'Ю', 'ю', 'Я', 'я',
       'A','a','B','b','C','c', 'D', 'd','E', 'e','F','f','G',
       'g','H','h','I','i','J','j','K','k','L','l','M','m','N',
       'n','O','o','P','p','Q','q','R','r','S','s','T','t','U',
       'u','V','v','W', 'w','X','x','Y','y','Z','z']:
        keyb = Controller()
        keyb.press(Key.ctrl_r)
        keyb.press(Key.space)
        keyb.release(Key.space)
        keyb.release(Key.ctrl_r)
        return False # remove this if want more keys
while 1:
  with keyboard.Listener(on_press=on_press) as lis:
       lis.join() # no this if main thread is polling self.keys
Всем спасибо.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version