generateJetbrainsConfig function
Generate a JetBrains plugin descriptor (plugin.xml content as a map).
Implementation
Map<String, dynamic> generateJetbrainsConfig({
String id = 'com.neomage-bridge',
String name = 'Neomage Bridge',
String version = '1.0.0',
String description = 'Bridge plugin connecting JetBrains IDEs to Neomage',
int port = 19836,
}) {
return {
'id': id,
'name': name,
'version': version,
'description': description,
'vendor': {
'name': 'Anthropic',
'url': 'https://anthropic.com',
'email': 'support@neomage.com',
},
'ideaVersion': {'sinceBuild': '231.0', 'untilBuild': '243.*'},
'depends': ['com.intellij.modules.platform', 'com.intellij.modules.lang'],
'extensions': {
'defaultExtensionNs': 'com.intellij',
'applicationService': {
'serviceImplementation':
'com.neomage.bridge.BridgeService',
},
'postStartupActivity': {
'implementation':
'com.neomage.bridge.BridgeStartupActivity',
},
'notificationGroup': {'id': 'Neomage', 'displayType': 'BALLOON'},
},
'actions': {
'group': {
'id': 'NeomageCode.Menu',
'text': 'Neomage',
'popup': true,
'addToGroup': {'groupId': 'ToolsMenu', 'anchor': 'last'},
'actions': [
{
'id': 'NeomageCode.Connect',
'text': 'Connect to Neomage',
'description': 'Establish connection to Neomage bridge',
},
{
'id': 'NeomageCode.Disconnect',
'text': 'Disconnect',
'description': 'Disconnect from Neomage bridge',
},
{
'id': 'NeomageCode.SendSelection',
'text': 'Send Selection to Neomage',
'description': 'Send the current editor selection to Neomage',
},
],
},
},
'settings': {
'port': port,
'autoConnect': true,
'reconnectIntervalMs': 5000,
'maxReconnectAttempts': 10,
},
};
}