Yandex YaCRM Assistant for BPMSoft Development (VS Code)
This Visual Studio Code extension accelerates server-side C# development for the BPMSoft low-code platform. It provides 13 BPMSoft.Core snippets and three item-template generators. The extension generates code only; it does not depend on BPMSoft SDK assemblies. Compile generated code in a BPMSoftSDK project or a project referencing BPMSoft.Core.dll.
Snippets use VS Code's native declarative snippet format. File-generation commands are implemented by the extension runtime.
Snippets
In a C# file, type a ya shortcut and select the snippet. Use Ctrl+Space if the suggestion list does not open automatically. Tab moves between replacement fields.
| Shortcut |
Inserts |
yaesqgetcol |
EntitySchemaQuery → GetEntityCollection |
yaesqget |
EntitySchemaQuery → GetEntity |
yaselect |
Select with an Id = @id condition through IDataReader |
yainsert |
Insert |
yaupdate |
Update with Set / Where |
yadelete |
Delete with Where |
yaentity |
An Entity created with EntitySchema.CreateEntity, SetColumnValue, and Save |
yabpm |
A business-process launch through IProcessExecutor |
yastoredproc |
A parameterized StoredProcedure |
yasetting |
SysSettings.GetValue<T> |
yadi |
ClassFactory.Get<T>() |
yacheckop |
DBSecurityEngine.CheckCanExecuteOperation (throws) |
yatryop |
DBSecurityEngine.GetCanExecuteOperation (returns bool) |
The snippets are contributed through VS Code's built-in snippet engine and do not replace C# or C# Dev Kit suggestions.
Commands
Open the Command Palette with Cmd+Shift+P and select a Yandex YaCRM Assistant command, or right-click a folder in Explorer and select Yandex YaCRM: New BPMSoft Item.
| Command |
Generated class |
| New Configuration Service... |
BPMSoft.Web.Common.BaseService with [ServiceContract], [OperationContract], and [WebInvoke] |
| New Entity Event Listener... |
BaseEntityEventListener with [EntityEventListener(SchemaName = "...")] and OnInserting / OnUpdating / OnDeleting stubs |
| New Process Executor... |
Partial user-task class in BPMSoft.Core.Process.Configuration with an InternalExecute override |
Each command validates the class name, selects a target folder, uses the BPMSoft namespace convention, and requests confirmation before overwriting an existing file. Commands that write files require a trusted workspace; snippets also work in Restricted Mode.
Install from VSIX
code --install-extension yandex-yacrm-assistant-bpmsoft-<version>.vsix --force
You can also use Extensions → … → Install from VSIX.
Build from source
npm install
npm run compile
npm test
npm run package
To debug, open this directory in VS Code and start the Run Extension configuration with F5.
BPMSoft API differences
Snippet bodies live in snippets/bpmsoft.code-snippets; templates live in src/templates.ts. BPMSoft versions can differ in individual API signatures, so review generated code against the SDK version used by your installation.
License
MIT © 2026 Oleg Konanykhin.