Skip to content

Instantly share code, notes, and snippets.

@IlyasYOY
Last active November 2, 2023 02:04
Show Gist options
  • Save IlyasYOY/7f5ec87c75d2c049eebe6b9c7cd4a066 to your computer and use it in GitHub Desktop.
Save IlyasYOY/7f5ec87c75d2c049eebe6b9c7cd4a066 to your computer and use it in GitHub Desktop.

Revisions

  1. IlyasYOY revised this gist Jul 10, 2022. No changes.
  2. IlyasYOY revised this gist Jul 10, 2022. 1 changed file with 11 additions and 5 deletions.
    16 changes: 11 additions & 5 deletions setup-lombok-support-for-coc-java.py
    Original file line number Diff line number Diff line change
    @@ -23,15 +23,21 @@ def download_lombok():
    print('WARNING! ⚠️ This scripts load lombok for coc-java, so be sure you have already '
    + 'install plugins & coc-java itself')
    download_lombok()
    print(f'Backing up πŸ›‘ your coc config at {coc_settings_json_path} to {coc_settings_json_bak_path}')
    coc_config_file_content = coc_settings_json_path.read_text()
    coc_settings_json_bak_path.write_text(coc_config_file_content)
    print(f'Your file was backed up!😎')
    coc_config_dict = json.loads(coc_config_file_content)
    coc_config_dict = {}
    if not coc_settings_json_path.exists():
    print(f"You dont have any config setup, creating one at {coc_settings_json_path}")
    coc_settings_json_path.touch()
    else:
    print(f'Backing up πŸ›‘ your coc config at {coc_settings_json_path} to {coc_settings_json_bak_path}')
    coc_config_file_content = coc_settings_json_path.read_text()
    coc_settings_json_bak_path.write_text(coc_config_file_content)
    print(f'Your file was backed up!😎')
    coc_config_dict = json.loads(coc_config_file_content)
    print(f'Parsed πŸ”Ž coc config file to dict: {coc_config_dict}')
    coc_config_dict['java.jdt.ls.vmargs'] = f'-javaagent:{lombok_download_path}'
    print(f'New config ✨ file content:\n{coc_config_dict}')
    print('Saving your new config file!πŸ‘Œ')
    coc_config_file_content = json.dumps(coc_config_dict, indent=4)
    coc_settings_json_path.write_text(coc_config_file_content)
    print('We are all done βœ…')

  3. IlyasYOY created this gist Jul 7, 2022.
    37 changes: 37 additions & 0 deletions setup-lombok-support-for-coc-java.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,37 @@
    #!/usr/bin/python3
    import json
    from pathlib import Path
    from urllib import request

    coc_java_dir_path = Path.home() / '.config/coc/extensions/coc-java-data'
    nvim_config_dir_path = Path.home() / '.config/nvim/'
    coc_settings_json_path = nvim_config_dir_path / 'coc-settings.json'
    coc_settings_json_bak_path = nvim_config_dir_path / 'coc-settings.json.bak'

    lombok_url = 'https://projectlombok.org/downloads/lombok.jar'
    lombok_download_path = coc_java_dir_path / 'lombok.jar'


    def download_lombok():
    print(f'Download lombok from {lombok_url}')
    request.urlretrieve(lombok_url, lombok_download_path)
    request.urlcleanup()
    print(f'Lombok downloaded to {lombok_download_path}')


    if __name__ == '__main__':
    print('WARNING! ⚠️ This scripts load lombok for coc-java, so be sure you have already '
    + 'install plugins & coc-java itself')
    download_lombok()
    print(f'Backing up πŸ›‘ your coc config at {coc_settings_json_path} to {coc_settings_json_bak_path}')
    coc_config_file_content = coc_settings_json_path.read_text()
    coc_settings_json_bak_path.write_text(coc_config_file_content)
    print(f'Your file was backed up!😎')
    coc_config_dict = json.loads(coc_config_file_content)
    print(f'Parsed πŸ”Ž coc config file to dict: {coc_config_dict}')
    coc_config_dict['java.jdt.ls.vmargs'] = f'-javaagent:{lombok_download_path}'
    print(f'New config ✨ file content:\n{coc_config_dict}')
    print('Saving your new config file!πŸ‘Œ')
    coc_config_file_content = json.dumps(coc_config_dict, indent=4)
    coc_settings_json_path.write_text(coc_config_file_content)
    print('We are all done βœ…')