Найти - Пользователи
Полная версия: Python скрипт для автодополнения кода для редактора Eclipse.
Начало » Python для новичков » Python скрипт для автодополнения кода для редактора Eclipse.
1
EgorSrche

В редакторе 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()
JOHN_16
это конечно будет оффтоп, но неужели это не настраивается в самом Eclipse и/или его плагинах ?
EgorSrche
JOHN_16, У меня не получается это настроить. Легче скрипт написать
py.user.next
EgorSrche
В редакторе Eclipse
EgorSrche
У меня не получается это настроить
Там ещё много чего не будет получаться. Эта среда своей встроенной консолью на программу на C, в которой происходил сбой Segmentation fault, показывала, что программа выполняется отлично (код ноль и тому подобное). Целый час искал ошибку в коде, пока не допёр, что надо программу в обычной консоли системы запустить, где это всё было наглядно.
А потом ещё настройки окон, которые я делал тоже целый час, просто слетели в один прекрасный день безо всякой причины.
А потом ещё прикол был, когда при сборке проекта собирались все остальные десять проектов, которые к нему не имели отношения. Причина оказалась в том, что сначала их все нужно было закрыть, чтобы они не собирались. А сама программа понять, в каком ты проекте в данный момент находишься, была не в состоянии.
Может, что-нибудь и изменилось за пять-семь лет. Но сомневаюсь, потому что основное направление программы было нацелено на красивость, а не на функциональность и удобность.
EgorSrche
Вот как решил эту проблему.

 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
Всем спасибо.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB