
Research
/Security News
Bitwarden CLI Compromised in Ongoing Checkmarx Supply Chain Campaign
Bitwarden CLI 2026.4.0 was compromised in the Checkmarx supply chain campaign after attackers abused a GitHub Action in Bitwarden’s CI/CD pipeline.
github.com/ispapp/psshclient/pkg/codeditor
Advanced tools
A powerful, customizable code editor widget for Fyne applications with syntax highlighting and VS Code-style theme support.
go get github.com/ispapp/psshclient/pkg/codeditor
package main
import (
"fyne.io/fyne/v2/app"
editor "github.com/ispapp/psshclient/pkg/codeditor"
)
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("Code Editor")
// Create a new code editor
codeEditor := editor.NewScriptEditor()
codeEditor.SetLanguage("go")
codeEditor.SetContent(`package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}`)
myWindow.SetContent(codeEditor)
myWindow.ShowAndRun()
}
// Create a new editor with default settings
editor := NewScriptEditor()
// Create with specific language and theme
editor := CreateCodeEditor("python", GetVSCodeDarkTheme())
// Create with initial content
editor := CreateCodeEditorWithContent(code, "go", GetDefaultTheme())
// Set and get content
editor.SetContent("your code here")
content := editor.GetContent()
// Listen for changes
editor.SetOnChanged(func(content string) {
// Handle content changes
fmt.Println("Content changed:", len(content), "characters")
})
// Set programming language for syntax highlighting
editor.SetLanguage("go") // Go
editor.SetLanguage("python") // Python
editor.SetLanguage("javascript") // JavaScript
editor.SetLanguage("java") // Java
editor.SetLanguage("c") // C
editor.SetLanguage("cpp") // C++
// Get current language
language := editor.GetLanguage()
// Use built-in themes
editor.SetTheme(GetDefaultTheme()) // Dark theme
editor.SetTheme(GetLightTheme()) // Light theme
editor.SetTheme(GetVSCodeDarkTheme()) // VS Code Dark
editor.SetTheme(GetMonokaiTheme()) // Monokai
// Load theme from JSON file
theme, err := LoadThemeFromJSON("my-theme.json")
if err == nil {
editor.SetTheme(theme)
}
// Font size
editor.SetFontSize(14.0)
size := editor.GetFontSize()
// Tab size
editor.SetTabSize(4)
tabSize := editor.GetTabSize()
// Line numbers
editor.SetShowLineNumbers(true)
showLines := editor.GetShowLineNumbers()
Themes can be defined in JSON format:
{
"name": "My Custom Theme",
"background": "#1e1e1e",
"foreground": "#d4d4d4",
"tokenColors": {
"keyword": "#569cd6",
"string": "#ce9178",
"comment": "#6a9955",
"number": "#b5cea8",
"operator": "#d4d4d4",
"identifier": "#9cdcfe",
"function": "#dcdcaa",
"type": "#4ec9b0",
"plain": "#d4d4d4"
}
}
// Save a theme to JSON file
theme := GetMonokaiTheme()
err := SaveThemeToJSON(theme, "monokai-theme.json")
See the example.go file for a complete demonstration including:
lexer.goinitialize[Language]Rules() methodinitializeRules()Theme struct with your colorsSaveThemeToJSON() to export as JSONLoadThemeFromJSON() for reuseThe widget follows Fyne's architecture patterns:
fyne.Widgetfyne.WidgetRendererThis project is licensed under the same license as the parent project.
FAQs
Unknown package
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Bitwarden CLI 2026.4.0 was compromised in the Checkmarx supply chain campaign after attackers abused a GitHub Action in Bitwarden’s CI/CD pipeline.

Research
/Security News
Docker and Socket have uncovered malicious Checkmarx KICS images and suspicious code extension releases in a broader supply chain compromise.

Product
Stay on top of alert changes with filtered subscriptions, batched summaries, and notification routing built for triage.