-
-
Save jpvillaseca/8cdc67772db6a40d8f1dfb8f190c49bf to your computer and use it in GitHub Desktop.
Vscode verbose gopls output
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[Trace - 17:45:14.037 PM] Sending request 'textDocument/hover - (56)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/session.go"},"position":{"line":19,"character":17}} | |
[Trace - 17:45:14.038 PM] Received response 'textDocument/hover - (56)' in 0ms. | |
Result: {"contents":{"kind":"markdown","value":"Session stores the metadata of every connected client\n```go\nSession struct {\n\tgorm.Model\n\tAppVersion string\n\tInternalVersion string\n\tDevice string\n\tMacAddress string\n\tTenant string\n\tVanityID string\n\tIPAddress string\n}\n```"},"range":{"start":{"line":19,"character":14},"end":{"line":19,"character":21}}} | |
[Trace - 17:45:15.281 PM] Sending notification 'textDocument/didClose'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/session.go"}} | |
[Trace - 17:45:15.282 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///c:/Users/noflo/go/src/jarvis-server/app/models/session.go","diagnostics":[]} | |
[Trace - 17:45:15.282 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/asset.go","diagnostics":[]} | |
[Trace - 17:45:15.282 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/initialize.go","diagnostics":[]} | |
[Trace - 17:45:15.282 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/session.go","diagnostics":[]} | |
[Trace - 17:45:15.321 PM] Sending notification 'textDocument/didOpen'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go","languageId":"go","version":1,"text":"package models\r\n\r\nimport (\r\n\tlog \"github.com/sirupsen/logrus\"\r\n\t\"github.com/spf13/viper\"\r\n\r\n\t\"github.com/jinzhu/gorm\"\r\n\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\r\n)\r\n\r\n// DatabaseConfig stores the configuration parameters for the database\r\ntype DatabaseConfig struct {\r\n\tLogging bool\r\n\tAutomigrate bool\r\n\tConnectionstring string\r\n}\r\n\r\nvar db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\r\nvar Config DatabaseConfig // stores database connection parameters\r\n\r\n// OpenSqliteConnection opens the connection, it should be called once\r\nfunc OpenSqliteConnection() error {\r\n\tvar err error\r\n\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\r\n\r\n\tif err != nil {\r\n\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\r\n\t\treturn err\r\n\t}\r\n\r\n\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\r\n\r\n\tdb.LogMode(Config.Logging)\r\n\r\n\treturn nil\r\n}\r\n\r\n// ReadConfigFile sets configuration parameters based on config file\r\nfunc ReadConfigFile() {\r\n\tConfig = DatabaseConfig{\r\n\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\r\n\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\r\n\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\r\n\t}\r\n}\r\n\r\n// Automigrate drops and recreates the database schema if enabled in app config\r\nfunc Automigrate() error {\r\n\tif Config.Automigrate {\r\n\t\tlog.Warn(\"Running database automigration\")\r\n\t\tdb.AutoMigrate(&Asset{}, &Session{}) // not for production use, drops and recreates the schema\r\n\t}\r\n\r\n\treturn nil\r\n}\r\n"}} | |
[Trace - 17:45:15.321 PM] Sending request 'textDocument/documentLink - (57)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:15.321 PM] Sending request 'textDocument/codeAction - (58)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}} | |
[Trace - 17:45:15.321 PM] Sending request 'textDocument/documentSymbol - (59)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:15.324 PM] Received response 'textDocument/documentLink - (57)' in 2ms. | |
Result: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":33}},"target":"https://godoc.org/github.com/sirupsen/logrus"},{"range":{"start":{"line":4,"character":1},"end":{"line":4,"character":25}},"target":"https://godoc.org/github.com/spf13/viper"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":25}},"target":"https://godoc.org/github.com/jinzhu/gorm"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":43}},"target":"https://godoc.org/github.com/jinzhu/gorm/dialects/sqlite"}] | |
[Trace - 17:45:15.324 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/asset.go","diagnostics":[]} | |
[Trace - 17:45:15.324 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/initialize.go","diagnostics":[]} | |
[Trace - 17:45:15.325 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/session.go","diagnostics":[]} | |
[Trace - 17:45:15.325 PM] Received response 'textDocument/codeAction - (58)' in 3ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:15.325 PM] Received response 'textDocument/documentSymbol - (59)' in 3ms. | |
Result: [{"name":"DatabaseConfig","detail":"struct{...}","kind":23,"range":{"start":{"line":11,"character":5},"end":{"line":15,"character":1}},"selectionRange":{"start":{"line":11,"character":5},"end":{"line":11,"character":19}},"children":[{"name":"Logging","detail":"bool","kind":8,"range":{"start":{"line":12,"character":1},"end":{"line":12,"character":22}},"selectionRange":{"start":{"line":12,"character":1},"end":{"line":12,"character":8}}},{"name":"Automigrate","detail":"bool","kind":8,"range":{"start":{"line":13,"character":1},"end":{"line":13,"character":22}},"selectionRange":{"start":{"line":13,"character":1},"end":{"line":13,"character":12}}},{"name":"Connectionstring","detail":"string","kind":8,"range":{"start":{"line":14,"character":1},"end":{"line":14,"character":24}},"selectionRange":{"start":{"line":14,"character":1},"end":{"line":14,"character":17}}}]},{"name":"db","detail":"*gorm.DB","kind":13,"range":{"start":{"line":17,"character":0},"end":{"line":17,"character":15}},"selectionRange":{"start":{"line":17,"character":4},"end":{"line":17,"character":6}}},{"name":"Config","detail":"DatabaseConfig","kind":13,"range":{"start":{"line":18,"character":0},"end":{"line":18,"character":25}},"selectionRange":{"start":{"line":18,"character":4},"end":{"line":18,"character":10}}},{"name":"OpenSqliteConnection","detail":"()","kind":12,"range":{"start":{"line":21,"character":0},"end":{"line":35,"character":1}},"selectionRange":{"start":{"line":21,"character":5},"end":{"line":21,"character":25}}},{"name":"ReadConfigFile","detail":"()","kind":12,"range":{"start":{"line":38,"character":0},"end":{"line":44,"character":1}},"selectionRange":{"start":{"line":38,"character":5},"end":{"line":38,"character":19}}},{"name":"Automigrate","detail":"()","kind":12,"range":{"start":{"line":47,"character":0},"end":{"line":54,"character":1}},"selectionRange":{"start":{"line":47,"character":5},"end":{"line":47,"character":16}}}] | |
[Trace - 17:45:15.489 PM] Sending request 'textDocument/foldingRange - (60)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:15.489 PM] Received response 'textDocument/foldingRange - (60)' in 0ms. | |
Result: [{"startLine":2,"startCharacter":8,"endLine":7,"endCharacter":43,"kind":"imports"},{"startLine":11,"startCharacter":28,"endLine":14,"endCharacter":24},{"startLine":21,"startCharacter":35,"endLine":34,"endCharacter":11},{"startLine":25,"startCharacter":16,"endLine":27,"endCharacter":12},{"startLine":38,"startCharacter":23,"endLine":43,"endCharacter":2},{"startLine":47,"startCharacter":26,"endLine":53,"endCharacter":11},{"startLine":48,"startCharacter":24,"endLine":50,"endCharacter":38}] | |
[Trace - 17:45:15.545 PM] Sending request 'textDocument/codeAction - (61)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":47,"character":5},"end":{"line":47,"character":18}},"context":{"diagnostics":[]}} | |
[Trace - 17:45:15.547 PM] Received response 'textDocument/codeAction - (61)' in 1ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:16.303 PM] Sending request 'textDocument/codeAction - (62)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":43,"character":2},"end":{"line":43,"character":2}},"context":{"diagnostics":[]}} | |
[Trace - 17:45:16.304 PM] Received response 'textDocument/codeAction - (62)' in 1ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:17.283 PM] Sending request 'textDocument/hover - (63)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"position":{"line":41,"character":13}} | |
[Trace - 17:45:17.283 PM] Received response 'textDocument/hover - (63)' in 0ms. | |
Result: {} | |
[Trace - 17:45:17.421 PM] Sending request 'textDocument/definition - (64)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"position":{"line":40,"character":13}} | |
[Trace - 17:45:17.421 PM] Received response 'textDocument/definition - (64)' in 0ms. | |
Result: [{"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/initialize.go","range":{"start":{"line":13,"character":1},"end":{"line":13,"character":12}}}] | |
[Trace - 17:45:17.480 PM] Sending request 'textDocument/hover - (65)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"position":{"line":40,"character":12}} | |
[Trace - 17:45:17.480 PM] Received response 'textDocument/hover - (65)' in 0ms. | |
Result: {"contents":{"kind":"markdown","value":"```go\nfield Automigrate bool\n```"},"range":{"start":{"line":40,"character":2},"end":{"line":40,"character":13}}} | |
[Trace - 17:45:17.560 PM] Sending request 'textDocument/codeAction - (66)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"context":{"diagnostics":[]}} | |
[Trace - 17:45:17.562 PM] Received response 'textDocument/codeAction - (66)' in 2ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:17.587 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go","version":2},"contentChanges":[{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\treturn nil\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tdb.AutoMigrate(&Asset{}, &Session{}) // not for production use, drops and recreates the schema\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tlog.Warn(\"Running database automigration\")\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tif Config.Automigrate {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"func Automigrate() error {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"// Automigrate drops and recreates the database schema if enabled in app config\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tConfig = DatabaseConfig{\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"func ReadConfigFile() {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"// ReadConfigFile sets configuration parameters based on config file\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\treturn nil\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tdb.LogMode(Config.Logging)\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\treturn err\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tif err != nil {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tvar err error\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"func OpenSqliteConnection() error {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"// OpenSqliteConnection opens the connection, it should be called once\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"var Config DatabaseConfig // stores database connection parameters\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tConnectionstring string\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tAutomigrate bool\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tLogging bool\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"type DatabaseConfig struct {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"// DatabaseConfig stores the configuration parameters for the database\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":")\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\"github.com/jinzhu/gorm\"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\"github.com/spf13/viper\"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tlog \"github.com/sirupsen/logrus\"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"import (\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"package models\r\n"},{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"rangeLength":1632,"text":""}]} | |
[Trace - 17:45:17.587 PM] Sending request 'textDocument/formatting - (67)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"options":{"tabSize":4,"insertSpaces":false}} | |
[Trace - 17:45:17.588 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/initialize.go","diagnostics":[]} | |
[Trace - 17:45:17.588 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/session.go","diagnostics":[]} | |
[Trace - 17:45:17.588 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/asset.go","diagnostics":[]} | |
[Trace - 17:45:17.589 PM] Received response 'textDocument/formatting - (67)' in 1ms. | |
Result: [{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}] | |
[Trace - 17:45:17.625 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go","version":3},"contentChanges":[{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\treturn nil\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tdb.AutoMigrate(&Asset{}, &Session{}) // not for production use, drops and recreates the schema\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tlog.Warn(\"Running database automigration\")\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tif Config.Automigrate {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"func Automigrate() error {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"// Automigrate drops and recreates the database schema if enabled in app config\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tConfig = DatabaseConfig{\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"func ReadConfigFile() {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"// ReadConfigFile sets configuration parameters based on config file\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\treturn nil\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tdb.LogMode(Config.Logging)\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\treturn err\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tif err != nil {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tvar err error\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"func OpenSqliteConnection() error {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"// OpenSqliteConnection opens the connection, it should be called once\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"var Config DatabaseConfig // stores database connection parameters\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tConnectionstring string\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tAutomigrate bool\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tLogging bool\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"type DatabaseConfig struct {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"// DatabaseConfig stores the configuration parameters for the database\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":")\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\"github.com/jinzhu/gorm\"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\"github.com/spf13/viper\"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tlog \"github.com/sirupsen/logrus\"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"import (\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"package models\r\n"},{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"rangeLength":1632,"text":""}]} | |
[Trace - 17:45:17.625 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/asset.go","diagnostics":[]} | |
[Trace - 17:45:17.625 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/initialize.go","diagnostics":[]} | |
[Trace - 17:45:17.625 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/session.go","diagnostics":[]} | |
[Trace - 17:45:17.691 PM] Sending notification 'textDocument/didSave'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go","version":3}} | |
[Trace - 17:45:17.822 PM] Sending request 'textDocument/foldingRange - (68)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:17.822 PM] Received response 'textDocument/foldingRange - (68)' in 0ms. | |
Result: [{"startLine":2,"startCharacter":8,"endLine":7,"endCharacter":43,"kind":"imports"},{"startLine":11,"startCharacter":28,"endLine":14,"endCharacter":24},{"startLine":21,"startCharacter":35,"endLine":34,"endCharacter":11},{"startLine":25,"startCharacter":16,"endLine":27,"endCharacter":12},{"startLine":38,"startCharacter":23,"endLine":43,"endCharacter":2},{"startLine":47,"startCharacter":26,"endLine":53,"endCharacter":11},{"startLine":48,"startCharacter":24,"endLine":50,"endCharacter":38}] | |
[Trace - 17:45:17.975 PM] Sending request 'textDocument/documentSymbol - (69)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:17.976 PM] Received response 'textDocument/documentSymbol - (69)' in 0ms. | |
Result: [{"name":"DatabaseConfig","detail":"struct{...}","kind":23,"range":{"start":{"line":11,"character":5},"end":{"line":15,"character":1}},"selectionRange":{"start":{"line":11,"character":5},"end":{"line":11,"character":19}},"children":[{"name":"Logging","detail":"bool","kind":8,"range":{"start":{"line":12,"character":1},"end":{"line":12,"character":22}},"selectionRange":{"start":{"line":12,"character":1},"end":{"line":12,"character":8}}},{"name":"Automigrate","detail":"bool","kind":8,"range":{"start":{"line":13,"character":1},"end":{"line":13,"character":22}},"selectionRange":{"start":{"line":13,"character":1},"end":{"line":13,"character":12}}},{"name":"Connectionstring","detail":"string","kind":8,"range":{"start":{"line":14,"character":1},"end":{"line":14,"character":24}},"selectionRange":{"start":{"line":14,"character":1},"end":{"line":14,"character":17}}}]},{"name":"db","detail":"*gorm.DB","kind":13,"range":{"start":{"line":17,"character":0},"end":{"line":17,"character":15}},"selectionRange":{"start":{"line":17,"character":4},"end":{"line":17,"character":6}}},{"name":"Config","detail":"DatabaseConfig","kind":13,"range":{"start":{"line":18,"character":0},"end":{"line":18,"character":25}},"selectionRange":{"start":{"line":18,"character":4},"end":{"line":18,"character":10}}},{"name":"OpenSqliteConnection","detail":"()","kind":12,"range":{"start":{"line":21,"character":0},"end":{"line":35,"character":1}},"selectionRange":{"start":{"line":21,"character":5},"end":{"line":21,"character":25}}},{"name":"ReadConfigFile","detail":"()","kind":12,"range":{"start":{"line":38,"character":0},"end":{"line":44,"character":1}},"selectionRange":{"start":{"line":38,"character":5},"end":{"line":38,"character":19}}},{"name":"Automigrate","detail":"()","kind":12,"range":{"start":{"line":47,"character":0},"end":{"line":54,"character":1}},"selectionRange":{"start":{"line":47,"character":5},"end":{"line":47,"character":16}}}] | |
[Trace - 17:45:18.014 PM] Sending request 'textDocument/codeAction - (70)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}} | |
[Trace - 17:45:18.015 PM] Received response 'textDocument/codeAction - (70)' in 0ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:18.584 PM] Sending request 'textDocument/documentLink - (71)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:18.584 PM] Received response 'textDocument/documentLink - (71)' in 0ms. | |
Result: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":33}},"target":"https://godoc.org/github.com/sirupsen/logrus"},{"range":{"start":{"line":4,"character":1},"end":{"line":4,"character":25}},"target":"https://godoc.org/github.com/spf13/viper"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":25}},"target":"https://godoc.org/github.com/jinzhu/gorm"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":43}},"target":"https://godoc.org/github.com/jinzhu/gorm/dialects/sqlite"}] | |
[Trace - 17:45:19.786 PM] Sending request 'textDocument/codeAction - (72)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":18,"character":4},"end":{"line":18,"character":66}},"context":{"diagnostics":[{"range":{"start":{"line":18,"character":4},"end":{"line":18,"character":66}},"message":"exported var Config should have comment or be unexported","severity":2,"source":"go-lint"}]}} | |
[Trace - 17:45:19.787 PM] Received response 'textDocument/codeAction - (72)' in 1ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:20.010 PM] Sending request 'textDocument/codeAction - (73)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":18,"character":4},"end":{"line":18,"character":66}},"context":{"diagnostics":[{"range":{"start":{"line":18,"character":4},"end":{"line":18,"character":66}},"message":"exported var Config should have comment or be unexported","severity":2,"source":"go-lint"}]}} | |
[Trace - 17:45:20.011 PM] Received response 'textDocument/codeAction - (73)' in 0ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:21.156 PM] Sending request 'textDocument/documentHighlight - (74)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"position":{"line":17,"character":38}} | |
[Trace - 17:45:21.156 PM] Received response 'textDocument/documentHighlight - (74)' in 0ms. | |
Result: [] | |
[Trace - 17:45:21.386 PM] Sending request 'textDocument/codeAction - (75)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":17,"character":38},"end":{"line":17,"character":38}},"context":{"diagnostics":[]}} | |
[Trace - 17:45:21.390 PM] Received response 'textDocument/codeAction - (75)' in 4ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:22.227 PM] Sending request 'textDocument/documentHighlight - (76)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"position":{"line":18,"character":38}} | |
[Trace - 17:45:22.227 PM] Received response 'textDocument/documentHighlight - (76)' in 0ms. | |
Result: [] | |
[Trace - 17:45:22.472 PM] Sending request 'textDocument/codeAction - (77)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":18,"character":38},"end":{"line":18,"character":38}},"context":{"diagnostics":[{"range":{"start":{"line":18,"character":4},"end":{"line":18,"character":66}},"message":"exported var Config should have comment or be unexported","severity":2,"source":"go-lint"}]}} | |
[Trace - 17:45:22.476 PM] Received response 'textDocument/codeAction - (77)' in 3ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:22.787 PM] Sending request 'textDocument/codeAction - (78)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":18,"character":37},"end":{"line":18,"character":37}},"context":{"diagnostics":[{"range":{"start":{"line":18,"character":4},"end":{"line":18,"character":66}},"message":"exported var Config should have comment or be unexported","severity":2,"source":"go-lint"}]}} | |
[Trace - 17:45:22.791 PM] Received response 'textDocument/codeAction - (78)' in 3ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:23.080 PM] Sending request 'textDocument/documentHighlight - (79)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"position":{"line":18,"character":35}} | |
[Trace - 17:45:23.080 PM] Received response 'textDocument/documentHighlight - (79)' in 0ms. | |
Result: [] | |
[Trace - 17:45:23.410 PM] Sending request 'textDocument/documentHighlight - (80)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"position":{"line":18,"character":25}} | |
[Trace - 17:45:23.411 PM] Received response 'textDocument/documentHighlight - (80)' in 0ms. | |
Result: [] | |
[Trace - 17:45:23.874 PM] Sending request 'textDocument/documentHighlight - (81)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"position":{"line":18,"character":10}} | |
[Trace - 17:45:23.874 PM] Received response 'textDocument/documentHighlight - (81)' in 0ms. | |
Result: [] | |
[Trace - 17:45:24.389 PM] Sending request 'textDocument/documentHighlight - (82)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"position":{"line":18,"character":3}} | |
[Trace - 17:45:24.389 PM] Received response 'textDocument/documentHighlight - (82)' in 0ms. | |
Result: [] | |
[Trace - 17:45:24.960 PM] Sending request 'textDocument/codeAction - (83)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":18,"character":1},"end":{"line":18,"character":1}},"context":{"diagnostics":[]}} | |
[Trace - 17:45:24.965 PM] Received response 'textDocument/codeAction - (83)' in 4ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:25.284 PM] Sending request 'textDocument/codeAction - (84)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":18,"character":0},"end":{"line":18,"character":0}},"context":{"diagnostics":[]}} | |
[Trace - 17:45:25.288 PM] Received response 'textDocument/codeAction - (84)' in 3ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:25.695 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go","version":4},"contentChanges":[{"range":{"start":{"line":18,"character":0},"end":{"line":18,"character":0}},"rangeLength":0,"text":"\r\n"}]} | |
[Trace - 17:45:25.695 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/asset.go","diagnostics":[]} | |
[Trace - 17:45:25.695 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/initialize.go","diagnostics":[]} | |
[Trace - 17:45:25.695 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/session.go","diagnostics":[]} | |
[Trace - 17:45:25.869 PM] Sending request 'textDocument/foldingRange - (85)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:25.870 PM] Received response 'textDocument/foldingRange - (85)' in 1ms. | |
Result: [{"startLine":2,"startCharacter":8,"endLine":7,"endCharacter":43,"kind":"imports"},{"startLine":11,"startCharacter":28,"endLine":14,"endCharacter":24},{"startLine":21,"startCharacter":35,"endLine":34,"endCharacter":11},{"startLine":25,"startCharacter":16,"endLine":27,"endCharacter":12},{"startLine":38,"startCharacter":23,"endLine":43,"endCharacter":2},{"startLine":47,"startCharacter":26,"endLine":53,"endCharacter":11},{"startLine":48,"startCharacter":24,"endLine":50,"endCharacter":38}] | |
[Trace - 17:45:25.919 PM] Sending request 'textDocument/codeAction - (86)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":19,"character":0},"end":{"line":19,"character":0}},"context":{"diagnostics":[]}} | |
[Trace - 17:45:25.919 PM] Received response 'textDocument/codeAction - (86)' in 0ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:26.018 PM] Sending request 'textDocument/documentSymbol - (87)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:26.019 PM] Received response 'textDocument/documentSymbol - (87)' in 0ms. | |
Result: [{"name":"DatabaseConfig","detail":"struct{...}","kind":23,"range":{"start":{"line":11,"character":5},"end":{"line":15,"character":1}},"selectionRange":{"start":{"line":11,"character":5},"end":{"line":11,"character":19}},"children":[{"name":"Logging","detail":"bool","kind":8,"range":{"start":{"line":12,"character":1},"end":{"line":12,"character":22}},"selectionRange":{"start":{"line":12,"character":1},"end":{"line":12,"character":8}}},{"name":"Automigrate","detail":"bool","kind":8,"range":{"start":{"line":13,"character":1},"end":{"line":13,"character":22}},"selectionRange":{"start":{"line":13,"character":1},"end":{"line":13,"character":12}}},{"name":"Connectionstring","detail":"string","kind":8,"range":{"start":{"line":14,"character":1},"end":{"line":14,"character":24}},"selectionRange":{"start":{"line":14,"character":1},"end":{"line":14,"character":17}}}]},{"name":"db","detail":"*gorm.DB","kind":13,"range":{"start":{"line":17,"character":0},"end":{"line":17,"character":15}},"selectionRange":{"start":{"line":17,"character":4},"end":{"line":17,"character":6}}},{"name":"Config","detail":"DatabaseConfig","kind":13,"range":{"start":{"line":18,"character":0},"end":{"line":18,"character":25}},"selectionRange":{"start":{"line":18,"character":4},"end":{"line":18,"character":10}}},{"name":"OpenSqliteConnection","detail":"()","kind":12,"range":{"start":{"line":21,"character":0},"end":{"line":35,"character":1}},"selectionRange":{"start":{"line":21,"character":5},"end":{"line":21,"character":25}}},{"name":"ReadConfigFile","detail":"()","kind":12,"range":{"start":{"line":38,"character":0},"end":{"line":44,"character":1}},"selectionRange":{"start":{"line":38,"character":5},"end":{"line":38,"character":19}}},{"name":"Automigrate","detail":"()","kind":12,"range":{"start":{"line":47,"character":0},"end":{"line":54,"character":1}},"selectionRange":{"start":{"line":47,"character":5},"end":{"line":47,"character":16}}}] | |
[Trace - 17:45:26.671 PM] Sending request 'textDocument/documentLink - (88)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:26.672 PM] Received response 'textDocument/documentLink - (88)' in 0ms. | |
Result: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":33}},"target":"https://godoc.org/github.com/sirupsen/logrus"},{"range":{"start":{"line":4,"character":1},"end":{"line":4,"character":25}},"target":"https://godoc.org/github.com/spf13/viper"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":25}},"target":"https://godoc.org/github.com/jinzhu/gorm"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":43}},"target":"https://godoc.org/github.com/jinzhu/gorm/dialects/sqlite"}] | |
[Trace - 17:45:27.482 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go","version":5},"contentChanges":[{"range":{"start":{"line":18,"character":0},"end":{"line":18,"character":0}},"rangeLength":0,"text":"\r\n"}]} | |
[Trace - 17:45:27.482 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/session.go","diagnostics":[]} | |
[Trace - 17:45:27.482 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/asset.go","diagnostics":[]} | |
[Trace - 17:45:27.482 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/initialize.go","diagnostics":[]} | |
[Trace - 17:45:27.670 PM] Sending request 'textDocument/foldingRange - (89)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:27.671 PM] Received response 'textDocument/foldingRange - (89)' in 1ms. | |
Result: [{"startLine":2,"startCharacter":8,"endLine":7,"endCharacter":43,"kind":"imports"},{"startLine":11,"startCharacter":28,"endLine":14,"endCharacter":24},{"startLine":21,"startCharacter":35,"endLine":34,"endCharacter":11},{"startLine":25,"startCharacter":16,"endLine":27,"endCharacter":12},{"startLine":38,"startCharacter":23,"endLine":43,"endCharacter":2},{"startLine":47,"startCharacter":26,"endLine":53,"endCharacter":11},{"startLine":48,"startCharacter":24,"endLine":50,"endCharacter":38}] | |
[Trace - 17:45:27.819 PM] Sending request 'textDocument/documentSymbol - (90)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:27.820 PM] Received response 'textDocument/documentSymbol - (90)' in 0ms. | |
Result: [{"name":"DatabaseConfig","detail":"struct{...}","kind":23,"range":{"start":{"line":11,"character":5},"end":{"line":15,"character":1}},"selectionRange":{"start":{"line":11,"character":5},"end":{"line":11,"character":19}},"children":[{"name":"Logging","detail":"bool","kind":8,"range":{"start":{"line":12,"character":1},"end":{"line":12,"character":22}},"selectionRange":{"start":{"line":12,"character":1},"end":{"line":12,"character":8}}},{"name":"Automigrate","detail":"bool","kind":8,"range":{"start":{"line":13,"character":1},"end":{"line":13,"character":22}},"selectionRange":{"start":{"line":13,"character":1},"end":{"line":13,"character":12}}},{"name":"Connectionstring","detail":"string","kind":8,"range":{"start":{"line":14,"character":1},"end":{"line":14,"character":24}},"selectionRange":{"start":{"line":14,"character":1},"end":{"line":14,"character":17}}}]},{"name":"db","detail":"*gorm.DB","kind":13,"range":{"start":{"line":17,"character":0},"end":{"line":17,"character":15}},"selectionRange":{"start":{"line":17,"character":4},"end":{"line":17,"character":6}}},{"name":"Config","detail":"DatabaseConfig","kind":13,"range":{"start":{"line":18,"character":0},"end":{"line":18,"character":25}},"selectionRange":{"start":{"line":18,"character":4},"end":{"line":18,"character":10}}},{"name":"OpenSqliteConnection","detail":"()","kind":12,"range":{"start":{"line":21,"character":0},"end":{"line":35,"character":1}},"selectionRange":{"start":{"line":21,"character":5},"end":{"line":21,"character":25}}},{"name":"ReadConfigFile","detail":"()","kind":12,"range":{"start":{"line":38,"character":0},"end":{"line":44,"character":1}},"selectionRange":{"start":{"line":38,"character":5},"end":{"line":38,"character":19}}},{"name":"Automigrate","detail":"()","kind":12,"range":{"start":{"line":47,"character":0},"end":{"line":54,"character":1}},"selectionRange":{"start":{"line":47,"character":5},"end":{"line":47,"character":16}}}] | |
[Trace - 17:45:28.468 PM] Sending request 'textDocument/documentLink - (91)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:28.468 PM] Received response 'textDocument/documentLink - (91)' in 0ms. | |
Result: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":33}},"target":"https://godoc.org/github.com/sirupsen/logrus"},{"range":{"start":{"line":4,"character":1},"end":{"line":4,"character":25}},"target":"https://godoc.org/github.com/spf13/viper"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":25}},"target":"https://godoc.org/github.com/jinzhu/gorm"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":43}},"target":"https://godoc.org/github.com/jinzhu/gorm/dialects/sqlite"}] | |
[Trace - 17:45:29.041 PM] Sending request 'textDocument/documentHighlight - (92)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"position":{"line":20,"character":29}} | |
[Trace - 17:45:29.041 PM] Received response 'textDocument/documentHighlight - (92)' in 0ms. | |
Result: [] | |
[Trace - 17:45:29.452 PM] Sending request 'textDocument/codeAction - (93)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":20,"character":29},"end":{"line":20,"character":35}},"context":{"diagnostics":[]}} | |
[Trace - 17:45:29.454 PM] Received response 'textDocument/codeAction - (93)' in 2ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:30.551 PM] Sending request 'textDocument/codeAction - (94)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":20,"character":26},"end":{"line":20,"character":26}},"context":{"diagnostics":[]}} | |
[Trace - 17:45:30.554 PM] Received response 'textDocument/codeAction - (94)' in 2ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:31.292 PM] Sending request 'textDocument/codeAction - (95)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":20,"character":26},"end":{"line":20,"character":66}},"context":{"diagnostics":[]}} | |
[Trace - 17:45:31.296 PM] Received response 'textDocument/codeAction - (95)' in 3ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:31.478 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go","version":6},"contentChanges":[{"range":{"start":{"line":20,"character":26},"end":{"line":20,"character":66}},"rangeLength":40,"text":""}]} | |
[Trace - 17:45:31.478 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/asset.go","diagnostics":[]} | |
[Trace - 17:45:31.478 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/initialize.go","diagnostics":[]} | |
[Trace - 17:45:31.478 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/session.go","diagnostics":[]} | |
[Trace - 17:45:31.684 PM] Sending request 'textDocument/foldingRange - (96)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:31.684 PM] Received response 'textDocument/foldingRange - (96)' in 0ms. | |
Result: [{"startLine":2,"startCharacter":8,"endLine":7,"endCharacter":43,"kind":"imports"},{"startLine":11,"startCharacter":28,"endLine":14,"endCharacter":24},{"startLine":21,"startCharacter":35,"endLine":34,"endCharacter":11},{"startLine":25,"startCharacter":16,"endLine":27,"endCharacter":12},{"startLine":38,"startCharacter":23,"endLine":43,"endCharacter":2},{"startLine":47,"startCharacter":26,"endLine":53,"endCharacter":11},{"startLine":48,"startCharacter":24,"endLine":50,"endCharacter":38}] | |
[Trace - 17:45:31.830 PM] Sending request 'textDocument/documentSymbol - (97)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:31.830 PM] Received response 'textDocument/documentSymbol - (97)' in 0ms. | |
Result: [{"name":"DatabaseConfig","detail":"struct{...}","kind":23,"range":{"start":{"line":11,"character":5},"end":{"line":15,"character":1}},"selectionRange":{"start":{"line":11,"character":5},"end":{"line":11,"character":19}},"children":[{"name":"Logging","detail":"bool","kind":8,"range":{"start":{"line":12,"character":1},"end":{"line":12,"character":22}},"selectionRange":{"start":{"line":12,"character":1},"end":{"line":12,"character":8}}},{"name":"Automigrate","detail":"bool","kind":8,"range":{"start":{"line":13,"character":1},"end":{"line":13,"character":22}},"selectionRange":{"start":{"line":13,"character":1},"end":{"line":13,"character":12}}},{"name":"Connectionstring","detail":"string","kind":8,"range":{"start":{"line":14,"character":1},"end":{"line":14,"character":24}},"selectionRange":{"start":{"line":14,"character":1},"end":{"line":14,"character":17}}}]},{"name":"db","detail":"*gorm.DB","kind":13,"range":{"start":{"line":17,"character":0},"end":{"line":17,"character":15}},"selectionRange":{"start":{"line":17,"character":4},"end":{"line":17,"character":6}}},{"name":"Config","detail":"DatabaseConfig","kind":13,"range":{"start":{"line":18,"character":0},"end":{"line":18,"character":25}},"selectionRange":{"start":{"line":18,"character":4},"end":{"line":18,"character":10}}},{"name":"OpenSqliteConnection","detail":"()","kind":12,"range":{"start":{"line":21,"character":0},"end":{"line":35,"character":1}},"selectionRange":{"start":{"line":21,"character":5},"end":{"line":21,"character":25}}},{"name":"ReadConfigFile","detail":"()","kind":12,"range":{"start":{"line":38,"character":0},"end":{"line":44,"character":1}},"selectionRange":{"start":{"line":38,"character":5},"end":{"line":38,"character":19}}},{"name":"Automigrate","detail":"()","kind":12,"range":{"start":{"line":47,"character":0},"end":{"line":54,"character":1}},"selectionRange":{"start":{"line":47,"character":5},"end":{"line":47,"character":16}}}] | |
[Trace - 17:45:31.895 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go","version":7},"contentChanges":[{"range":{"start":{"line":20,"character":25},"end":{"line":20,"character":26}},"rangeLength":1,"text":""}]} | |
[Trace - 17:45:31.895 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/session.go","diagnostics":[]} | |
[Trace - 17:45:31.895 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/asset.go","diagnostics":[]} | |
[Trace - 17:45:31.895 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/initialize.go","diagnostics":[]} | |
[Trace - 17:45:32.071 PM] Sending request 'textDocument/foldingRange - (98)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:32.073 PM] Received response 'textDocument/foldingRange - (98)' in 1ms. | |
Result: [{"startLine":2,"startCharacter":8,"endLine":7,"endCharacter":43,"kind":"imports"},{"startLine":11,"startCharacter":28,"endLine":14,"endCharacter":24},{"startLine":21,"startCharacter":35,"endLine":34,"endCharacter":11},{"startLine":25,"startCharacter":16,"endLine":27,"endCharacter":12},{"startLine":38,"startCharacter":23,"endLine":43,"endCharacter":2},{"startLine":47,"startCharacter":26,"endLine":53,"endCharacter":11},{"startLine":48,"startCharacter":24,"endLine":50,"endCharacter":38}] | |
[Trace - 17:45:32.118 PM] Sending request 'textDocument/codeAction - (99)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":20,"character":25},"end":{"line":20,"character":25}},"context":{"diagnostics":[]}} | |
[Trace - 17:45:32.119 PM] Received response 'textDocument/codeAction - (99)' in 0ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:32.220 PM] Sending request 'textDocument/documentSymbol - (100)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:32.221 PM] Received response 'textDocument/documentSymbol - (100)' in 0ms. | |
Result: [{"name":"DatabaseConfig","detail":"struct{...}","kind":23,"range":{"start":{"line":11,"character":5},"end":{"line":15,"character":1}},"selectionRange":{"start":{"line":11,"character":5},"end":{"line":11,"character":19}},"children":[{"name":"Logging","detail":"bool","kind":8,"range":{"start":{"line":12,"character":1},"end":{"line":12,"character":22}},"selectionRange":{"start":{"line":12,"character":1},"end":{"line":12,"character":8}}},{"name":"Automigrate","detail":"bool","kind":8,"range":{"start":{"line":13,"character":1},"end":{"line":13,"character":22}},"selectionRange":{"start":{"line":13,"character":1},"end":{"line":13,"character":12}}},{"name":"Connectionstring","detail":"string","kind":8,"range":{"start":{"line":14,"character":1},"end":{"line":14,"character":24}},"selectionRange":{"start":{"line":14,"character":1},"end":{"line":14,"character":17}}}]},{"name":"db","detail":"*gorm.DB","kind":13,"range":{"start":{"line":17,"character":0},"end":{"line":17,"character":15}},"selectionRange":{"start":{"line":17,"character":4},"end":{"line":17,"character":6}}},{"name":"Config","detail":"DatabaseConfig","kind":13,"range":{"start":{"line":18,"character":0},"end":{"line":18,"character":25}},"selectionRange":{"start":{"line":18,"character":4},"end":{"line":18,"character":10}}},{"name":"OpenSqliteConnection","detail":"()","kind":12,"range":{"start":{"line":21,"character":0},"end":{"line":35,"character":1}},"selectionRange":{"start":{"line":21,"character":5},"end":{"line":21,"character":25}}},{"name":"ReadConfigFile","detail":"()","kind":12,"range":{"start":{"line":38,"character":0},"end":{"line":44,"character":1}},"selectionRange":{"start":{"line":38,"character":5},"end":{"line":38,"character":19}}},{"name":"Automigrate","detail":"()","kind":12,"range":{"start":{"line":47,"character":0},"end":{"line":54,"character":1}},"selectionRange":{"start":{"line":47,"character":5},"end":{"line":47,"character":16}}}] | |
[Trace - 17:45:32.477 PM] Sending request 'textDocument/documentLink - (101)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:32.477 PM] Received response 'textDocument/documentLink - (101)' in 0ms. | |
Result: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":33}},"target":"https://godoc.org/github.com/sirupsen/logrus"},{"range":{"start":{"line":4,"character":1},"end":{"line":4,"character":25}},"target":"https://godoc.org/github.com/spf13/viper"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":25}},"target":"https://godoc.org/github.com/jinzhu/gorm"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":43}},"target":"https://godoc.org/github.com/jinzhu/gorm/dialects/sqlite"}] | |
[Trace - 17:45:33.244 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go","version":8},"contentChanges":[{"range":{"start":{"line":19,"character":0},"end":{"line":19,"character":0}},"rangeLength":0,"text":"// stores database connection parameters"}]} | |
[Trace - 17:45:33.245 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/asset.go","diagnostics":[]} | |
[Trace - 17:45:33.245 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/initialize.go","diagnostics":[]} | |
[Trace - 17:45:33.245 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/session.go","diagnostics":[]} | |
[Trace - 17:45:33.423 PM] Sending request 'textDocument/foldingRange - (102)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:33.424 PM] Received response 'textDocument/foldingRange - (102)' in 0ms. | |
Result: [{"startLine":2,"startCharacter":8,"endLine":7,"endCharacter":43,"kind":"imports"},{"startLine":11,"startCharacter":28,"endLine":14,"endCharacter":24},{"startLine":21,"startCharacter":35,"endLine":34,"endCharacter":11},{"startLine":25,"startCharacter":16,"endLine":27,"endCharacter":12},{"startLine":38,"startCharacter":23,"endLine":43,"endCharacter":2},{"startLine":47,"startCharacter":26,"endLine":53,"endCharacter":11},{"startLine":48,"startCharacter":24,"endLine":50,"endCharacter":38}] | |
[Trace - 17:45:33.473 PM] Sending request 'textDocument/codeAction - (103)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":19,"character":40},"end":{"line":19,"character":40}},"context":{"diagnostics":[]}} | |
[Trace - 17:45:33.474 PM] Received response 'textDocument/codeAction - (103)' in 1ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:33.573 PM] Sending request 'textDocument/documentSymbol - (104)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:33.573 PM] Received response 'textDocument/documentSymbol - (104)' in 0ms. | |
Result: [{"name":"DatabaseConfig","detail":"struct{...}","kind":23,"range":{"start":{"line":11,"character":5},"end":{"line":15,"character":1}},"selectionRange":{"start":{"line":11,"character":5},"end":{"line":11,"character":19}},"children":[{"name":"Logging","detail":"bool","kind":8,"range":{"start":{"line":12,"character":1},"end":{"line":12,"character":22}},"selectionRange":{"start":{"line":12,"character":1},"end":{"line":12,"character":8}}},{"name":"Automigrate","detail":"bool","kind":8,"range":{"start":{"line":13,"character":1},"end":{"line":13,"character":22}},"selectionRange":{"start":{"line":13,"character":1},"end":{"line":13,"character":12}}},{"name":"Connectionstring","detail":"string","kind":8,"range":{"start":{"line":14,"character":1},"end":{"line":14,"character":24}},"selectionRange":{"start":{"line":14,"character":1},"end":{"line":14,"character":17}}}]},{"name":"db","detail":"*gorm.DB","kind":13,"range":{"start":{"line":17,"character":0},"end":{"line":17,"character":15}},"selectionRange":{"start":{"line":17,"character":4},"end":{"line":17,"character":6}}},{"name":"Config","detail":"DatabaseConfig","kind":13,"range":{"start":{"line":18,"character":0},"end":{"line":18,"character":25}},"selectionRange":{"start":{"line":18,"character":4},"end":{"line":18,"character":10}}},{"name":"OpenSqliteConnection","detail":"()","kind":12,"range":{"start":{"line":21,"character":0},"end":{"line":35,"character":1}},"selectionRange":{"start":{"line":21,"character":5},"end":{"line":21,"character":25}}},{"name":"ReadConfigFile","detail":"()","kind":12,"range":{"start":{"line":38,"character":0},"end":{"line":44,"character":1}},"selectionRange":{"start":{"line":38,"character":5},"end":{"line":38,"character":19}}},{"name":"Automigrate","detail":"()","kind":12,"range":{"start":{"line":47,"character":0},"end":{"line":54,"character":1}},"selectionRange":{"start":{"line":47,"character":5},"end":{"line":47,"character":16}}}] | |
[Trace - 17:45:34.225 PM] Sending request 'textDocument/documentLink - (105)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:34.225 PM] Received response 'textDocument/documentLink - (105)' in 0ms. | |
Result: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":33}},"target":"https://godoc.org/github.com/sirupsen/logrus"},{"range":{"start":{"line":4,"character":1},"end":{"line":4,"character":25}},"target":"https://godoc.org/github.com/spf13/viper"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":25}},"target":"https://godoc.org/github.com/jinzhu/gorm"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":43}},"target":"https://godoc.org/github.com/jinzhu/gorm/dialects/sqlite"}] | |
[Trace - 17:45:34.569 PM] Sending request 'textDocument/hover - (106)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"position":{"line":22,"character":5}} | |
[Trace - 17:45:34.569 PM] Received response 'textDocument/hover - (106)' in 0ms. | |
Result: {"contents":{"kind":"markdown","value":"```go\nvar err error\n```"},"range":{"start":{"line":22,"character":5},"end":{"line":22,"character":8}}} | |
[Trace - 17:45:34.872 PM] Sending request 'textDocument/hover - (107)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"position":{"line":19,"character":2}} | |
[Trace - 17:45:34.873 PM] Received response 'textDocument/hover - (107)' in 1ms. | |
Result: {} | |
[Trace - 17:45:34.953 PM] Sending request 'textDocument/documentHighlight - (108)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"position":{"line":19,"character":3}} | |
[Trace - 17:45:34.953 PM] Received response 'textDocument/documentHighlight - (108)' in 0ms. | |
Result: [] | |
[Trace - 17:45:35.200 PM] Sending request 'textDocument/codeAction - (109)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":19,"character":3},"end":{"line":19,"character":3}},"context":{"diagnostics":[]}} | |
[Trace - 17:45:35.203 PM] Received response 'textDocument/codeAction - (109)' in 3ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:35.502 PM] Sending request 'textDocument/hover - (110)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"position":{"line":20,"character":6}} | |
[Trace - 17:45:35.502 PM] Received response 'textDocument/hover - (110)' in 0ms. | |
Result: {} | |
[Trace - 17:45:35.601 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go","version":9},"contentChanges":[{"range":{"start":{"line":19,"character":3},"end":{"line":19,"character":3}},"rangeLength":0,"text":"C"}]} | |
[Trace - 17:45:35.601 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/asset.go","diagnostics":[]} | |
[Trace - 17:45:35.602 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/initialize.go","diagnostics":[]} | |
[Trace - 17:45:35.602 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/session.go","diagnostics":[]} | |
[Trace - 17:45:35.789 PM] Sending request 'textDocument/foldingRange - (111)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:35.790 PM] Received response 'textDocument/foldingRange - (111)' in 0ms. | |
Result: [{"startLine":2,"startCharacter":8,"endLine":7,"endCharacter":43,"kind":"imports"},{"startLine":11,"startCharacter":28,"endLine":14,"endCharacter":24},{"startLine":21,"startCharacter":35,"endLine":34,"endCharacter":11},{"startLine":25,"startCharacter":16,"endLine":27,"endCharacter":12},{"startLine":38,"startCharacter":23,"endLine":43,"endCharacter":2},{"startLine":47,"startCharacter":26,"endLine":53,"endCharacter":11},{"startLine":48,"startCharacter":24,"endLine":50,"endCharacter":38}] | |
[Trace - 17:45:35.843 PM] Sending request 'textDocument/codeAction - (112)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":19,"character":4},"end":{"line":19,"character":4}},"context":{"diagnostics":[]}} | |
[Trace - 17:45:35.844 PM] Received response 'textDocument/codeAction - (112)' in 0ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:35.938 PM] Sending request 'textDocument/documentSymbol - (113)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:35.939 PM] Received response 'textDocument/documentSymbol - (113)' in 0ms. | |
Result: [{"name":"DatabaseConfig","detail":"struct{...}","kind":23,"range":{"start":{"line":11,"character":5},"end":{"line":15,"character":1}},"selectionRange":{"start":{"line":11,"character":5},"end":{"line":11,"character":19}},"children":[{"name":"Logging","detail":"bool","kind":8,"range":{"start":{"line":12,"character":1},"end":{"line":12,"character":22}},"selectionRange":{"start":{"line":12,"character":1},"end":{"line":12,"character":8}}},{"name":"Automigrate","detail":"bool","kind":8,"range":{"start":{"line":13,"character":1},"end":{"line":13,"character":22}},"selectionRange":{"start":{"line":13,"character":1},"end":{"line":13,"character":12}}},{"name":"Connectionstring","detail":"string","kind":8,"range":{"start":{"line":14,"character":1},"end":{"line":14,"character":24}},"selectionRange":{"start":{"line":14,"character":1},"end":{"line":14,"character":17}}}]},{"name":"db","detail":"*gorm.DB","kind":13,"range":{"start":{"line":17,"character":0},"end":{"line":17,"character":15}},"selectionRange":{"start":{"line":17,"character":4},"end":{"line":17,"character":6}}},{"name":"Config","detail":"DatabaseConfig","kind":13,"range":{"start":{"line":18,"character":0},"end":{"line":18,"character":25}},"selectionRange":{"start":{"line":18,"character":4},"end":{"line":18,"character":10}}},{"name":"OpenSqliteConnection","detail":"()","kind":12,"range":{"start":{"line":21,"character":0},"end":{"line":35,"character":1}},"selectionRange":{"start":{"line":21,"character":5},"end":{"line":21,"character":25}}},{"name":"ReadConfigFile","detail":"()","kind":12,"range":{"start":{"line":38,"character":0},"end":{"line":44,"character":1}},"selectionRange":{"start":{"line":38,"character":5},"end":{"line":38,"character":19}}},{"name":"Automigrate","detail":"()","kind":12,"range":{"start":{"line":47,"character":0},"end":{"line":54,"character":1}},"selectionRange":{"start":{"line":47,"character":5},"end":{"line":47,"character":16}}}] | |
[Trace - 17:45:36.369 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go","version":10},"contentChanges":[{"range":{"start":{"line":19,"character":4},"end":{"line":19,"character":4}},"rangeLength":0,"text":"o"}]} | |
[Trace - 17:45:36.369 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/asset.go","diagnostics":[]} | |
[Trace - 17:45:36.369 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/initialize.go","diagnostics":[]} | |
[Trace - 17:45:36.369 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/session.go","diagnostics":[]} | |
[Trace - 17:45:36.559 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go","version":11},"contentChanges":[{"range":{"start":{"line":19,"character":5},"end":{"line":19,"character":5}},"rangeLength":0,"text":"n"}]} | |
[Trace - 17:45:36.560 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/asset.go","diagnostics":[]} | |
[Trace - 17:45:36.560 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/initialize.go","diagnostics":[]} | |
[Trace - 17:45:36.560 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/session.go","diagnostics":[]} | |
[Trace - 17:45:36.586 PM] Sending request 'textDocument/documentLink - (114)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:36.586 PM] Received response 'textDocument/documentLink - (114)' in 0ms. | |
Result: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":33}},"target":"https://godoc.org/github.com/sirupsen/logrus"},{"range":{"start":{"line":4,"character":1},"end":{"line":4,"character":25}},"target":"https://godoc.org/github.com/spf13/viper"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":25}},"target":"https://godoc.org/github.com/jinzhu/gorm"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":43}},"target":"https://godoc.org/github.com/jinzhu/gorm/dialects/sqlite"}] | |
[Trace - 17:45:36.651 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go","version":12},"contentChanges":[{"range":{"start":{"line":19,"character":6},"end":{"line":19,"character":6}},"rangeLength":0,"text":"f"}]} | |
[Trace - 17:45:36.651 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/asset.go","diagnostics":[]} | |
[Trace - 17:45:36.651 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/initialize.go","diagnostics":[]} | |
[Trace - 17:45:36.651 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/session.go","diagnostics":[]} | |
[Trace - 17:45:36.777 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go","version":13},"contentChanges":[{"range":{"start":{"line":19,"character":7},"end":{"line":19,"character":7}},"rangeLength":0,"text":"i"}]} | |
[Trace - 17:45:36.777 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/asset.go","diagnostics":[]} | |
[Trace - 17:45:36.777 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/initialize.go","diagnostics":[]} | |
[Trace - 17:45:36.777 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/session.go","diagnostics":[]} | |
[Trace - 17:45:36.895 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go","version":14},"contentChanges":[{"range":{"start":{"line":19,"character":8},"end":{"line":19,"character":8}},"rangeLength":0,"text":"g"}]} | |
[Trace - 17:45:36.895 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/asset.go","diagnostics":[]} | |
[Trace - 17:45:36.895 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/initialize.go","diagnostics":[]} | |
[Trace - 17:45:36.895 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/session.go","diagnostics":[]} | |
[Trace - 17:45:37.054 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go","version":15},"contentChanges":[{"range":{"start":{"line":19,"character":9},"end":{"line":19,"character":9}},"rangeLength":0,"text":" "}]} | |
[Trace - 17:45:37.055 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/asset.go","diagnostics":[]} | |
[Trace - 17:45:37.055 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/initialize.go","diagnostics":[]} | |
[Trace - 17:45:37.055 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/session.go","diagnostics":[]} | |
[Trace - 17:45:37.232 PM] Sending request 'textDocument/foldingRange - (115)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:37.233 PM] Received response 'textDocument/foldingRange - (115)' in 0ms. | |
Result: [{"startLine":2,"startCharacter":8,"endLine":7,"endCharacter":43,"kind":"imports"},{"startLine":11,"startCharacter":28,"endLine":14,"endCharacter":24},{"startLine":21,"startCharacter":35,"endLine":34,"endCharacter":11},{"startLine":25,"startCharacter":16,"endLine":27,"endCharacter":12},{"startLine":38,"startCharacter":23,"endLine":43,"endCharacter":2},{"startLine":47,"startCharacter":26,"endLine":53,"endCharacter":11},{"startLine":48,"startCharacter":24,"endLine":50,"endCharacter":38}] | |
[Trace - 17:45:37.282 PM] Sending request 'textDocument/codeAction - (116)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":19,"character":10},"end":{"line":19,"character":10}},"context":{"diagnostics":[]}} | |
[Trace - 17:45:37.284 PM] Received response 'textDocument/codeAction - (116)' in 1ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:37.381 PM] Sending request 'textDocument/documentSymbol - (117)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:37.382 PM] Received response 'textDocument/documentSymbol - (117)' in 0ms. | |
Result: [{"name":"DatabaseConfig","detail":"struct{...}","kind":23,"range":{"start":{"line":11,"character":5},"end":{"line":15,"character":1}},"selectionRange":{"start":{"line":11,"character":5},"end":{"line":11,"character":19}},"children":[{"name":"Logging","detail":"bool","kind":8,"range":{"start":{"line":12,"character":1},"end":{"line":12,"character":22}},"selectionRange":{"start":{"line":12,"character":1},"end":{"line":12,"character":8}}},{"name":"Automigrate","detail":"bool","kind":8,"range":{"start":{"line":13,"character":1},"end":{"line":13,"character":22}},"selectionRange":{"start":{"line":13,"character":1},"end":{"line":13,"character":12}}},{"name":"Connectionstring","detail":"string","kind":8,"range":{"start":{"line":14,"character":1},"end":{"line":14,"character":24}},"selectionRange":{"start":{"line":14,"character":1},"end":{"line":14,"character":17}}}]},{"name":"db","detail":"*gorm.DB","kind":13,"range":{"start":{"line":17,"character":0},"end":{"line":17,"character":15}},"selectionRange":{"start":{"line":17,"character":4},"end":{"line":17,"character":6}}},{"name":"Config","detail":"DatabaseConfig","kind":13,"range":{"start":{"line":18,"character":0},"end":{"line":18,"character":25}},"selectionRange":{"start":{"line":18,"character":4},"end":{"line":18,"character":10}}},{"name":"OpenSqliteConnection","detail":"()","kind":12,"range":{"start":{"line":21,"character":0},"end":{"line":35,"character":1}},"selectionRange":{"start":{"line":21,"character":5},"end":{"line":21,"character":25}}},{"name":"ReadConfigFile","detail":"()","kind":12,"range":{"start":{"line":38,"character":0},"end":{"line":44,"character":1}},"selectionRange":{"start":{"line":38,"character":5},"end":{"line":38,"character":19}}},{"name":"Automigrate","detail":"()","kind":12,"range":{"start":{"line":47,"character":0},"end":{"line":54,"character":1}},"selectionRange":{"start":{"line":47,"character":5},"end":{"line":47,"character":16}}}] | |
[Trace - 17:45:37.640 PM] Sending request 'textDocument/codeAction - (118)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":0,"character":0},"end":{"line":57,"character":0}},"context":{"diagnostics":[{"range":{"start":{"line":18,"character":4},"end":{"line":18,"character":66}},"message":"exported var Config should have comment or be unexported","severity":2,"source":"go-lint"}]}} | |
[Trace - 17:45:37.641 PM] Sending request 'textDocument/documentLink - (119)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:37.641 PM] Received response 'textDocument/documentLink - (119)' in 0ms. | |
Result: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":33}},"target":"https://godoc.org/github.com/sirupsen/logrus"},{"range":{"start":{"line":4,"character":1},"end":{"line":4,"character":25}},"target":"https://godoc.org/github.com/spf13/viper"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":25}},"target":"https://godoc.org/github.com/jinzhu/gorm"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":43}},"target":"https://godoc.org/github.com/jinzhu/gorm/dialects/sqlite"}] | |
[Trace - 17:45:37.641 PM] Received response 'textDocument/codeAction - (118)' in 1ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:37.656 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go","version":16},"contentChanges":[{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\treturn nil\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tdb.AutoMigrate(&Asset{}, &Session{}) // not for production use, drops and recreates the schema\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tlog.Warn(\"Running database automigration\")\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tif Config.Automigrate {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"func Automigrate() error {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"// Automigrate drops and recreates the database schema if enabled in app config\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tConfig = DatabaseConfig{\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"func ReadConfigFile() {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"// ReadConfigFile sets configuration parameters based on config file\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\treturn nil\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tdb.LogMode(Config.Logging)\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\treturn err\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tif err != nil {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tvar err error\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"func OpenSqliteConnection() error {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"// OpenSqliteConnection opens the connection, it should be called once\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"var Config DatabaseConfig // stores database connection parameters\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tConnectionstring string\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tAutomigrate bool\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tLogging bool\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"type DatabaseConfig struct {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"// DatabaseConfig stores the configuration parameters for the database\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":")\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\"github.com/jinzhu/gorm\"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\"github.com/spf13/viper\"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tlog \"github.com/sirupsen/logrus\"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"import (\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"package models\r\n"},{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"rangeLength":1626,"text":""}]} | |
[Trace - 17:45:37.656 PM] Sending request 'textDocument/formatting - (120)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"options":{"tabSize":4,"insertSpaces":false}} | |
[Trace - 17:45:37.657 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/initialize.go","diagnostics":[]} | |
[Trace - 17:45:37.657 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/session.go","diagnostics":[]} | |
[Trace - 17:45:37.657 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/asset.go","diagnostics":[]} | |
[Trace - 17:45:37.657 PM] Received response 'textDocument/formatting - (120)' in 0ms. | |
Result: [{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}] | |
[Trace - 17:45:37.712 PM] Sending notification 'textDocument/didChange'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go","version":17},"contentChanges":[{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\treturn nil\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tdb.AutoMigrate(&Asset{}, &Session{}) // not for production use, drops and recreates the schema\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tlog.Warn(\"Running database automigration\")\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tif Config.Automigrate {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"func Automigrate() error {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"// Automigrate drops and recreates the database schema if enabled in app config\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tConfig = DatabaseConfig{\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"func ReadConfigFile() {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"// ReadConfigFile sets configuration parameters based on config file\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\treturn nil\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tdb.LogMode(Config.Logging)\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\treturn err\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tif err != nil {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tvar err error\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"func OpenSqliteConnection() error {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"// OpenSqliteConnection opens the connection, it should be called once\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"var Config DatabaseConfig // stores database connection parameters\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"}\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tConnectionstring string\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tAutomigrate bool\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tLogging bool\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"type DatabaseConfig struct {\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"// DatabaseConfig stores the configuration parameters for the database\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":")\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\"github.com/jinzhu/gorm\"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\t\"github.com/spf13/viper\"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\tlog \"github.com/sirupsen/logrus\"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"import (\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"\r\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"rangeLength":0,"text":"package models\r\n"},{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"rangeLength":1632,"text":""}]} | |
[Trace - 17:45:37.713 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/initialize.go","diagnostics":[]} | |
[Trace - 17:45:37.713 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/session.go","diagnostics":[]} | |
[Trace - 17:45:37.713 PM] Received notification 'textDocument/publishDiagnostics'. | |
Params: {"uri":"file:///C:/Users/noflo/go/src/jarvis-server/app/models/asset.go","diagnostics":[]} | |
[Trace - 17:45:37.750 PM] Sending notification 'textDocument/didSave'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go","version":17}} | |
[Trace - 17:45:37.892 PM] Sending request 'textDocument/foldingRange - (121)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:37.892 PM] Received response 'textDocument/foldingRange - (121)' in 0ms. | |
Result: [{"startLine":2,"startCharacter":8,"endLine":7,"endCharacter":43,"kind":"imports"},{"startLine":11,"startCharacter":28,"endLine":14,"endCharacter":24},{"startLine":21,"startCharacter":35,"endLine":34,"endCharacter":11},{"startLine":25,"startCharacter":16,"endLine":27,"endCharacter":12},{"startLine":38,"startCharacter":23,"endLine":43,"endCharacter":2},{"startLine":47,"startCharacter":26,"endLine":53,"endCharacter":11},{"startLine":48,"startCharacter":24,"endLine":50,"endCharacter":38}] | |
[Trace - 17:45:38.012 PM] Sending request 'textDocument/codeAction - (122)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}} | |
[Trace - 17:45:38.014 PM] Received response 'textDocument/codeAction - (122)' in 1ms. | |
Result: [{"title":"Organize Imports","kind":"source.organizeImports","edit":{"changes":{"file:///c:/Users/noflo/go/src/jarvis-server/app/models/initialize.go":[{"range":{"start":{"line":0,"character":0},"end":{"line":55,"character":0}},"newText":""},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"package models\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"import (\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog \"github.com/sirupsen/logrus\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/spf13/viper\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\"github.com/jinzhu/gorm\"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t_ \"github.com/jinzhu/gorm/dialects/sqlite\" // importing sqlite dialect for gorm\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// DatabaseConfig stores the configuration parameters for the database\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"type DatabaseConfig struct {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tLogging bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tAutomigrate bool\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConnectionstring string\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var db *gorm.DB // gorm handles the connection pool using the recommended approach for each database engine\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"var Config DatabaseConfig // stores database connection parameters\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// OpenSqliteConnection opens the connection, it should be called once\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func OpenSqliteConnection() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tvar err error\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb, err = gorm.Open(\"sqlite3\", Config.Connectionstring)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif err != nil {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Errorf(\"OpenSqliteConnection failed on %s: %v\", Config.Connectionstring, err)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\treturn err\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tlog.Infof(\"OpenSqliteConnection OK: %+v\", Config)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tdb.LogMode(Config.Logging)\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// ReadConfigFile sets configuration parameters based on config file\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func ReadConfigFile() {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tConfig = DatabaseConfig{\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tAutomigrate: viper.GetBool(\"digitaltwin-sqlite.automigrate\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tLogging: viper.GetBool(\"digitaltwin-sqlite.logging\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tConnectionstring: viper.GetString(\"digitaltwin-sqlite.connectionstring\"),\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"// Automigrate drops and recreates the database schema if enabled in app config\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"func Automigrate() error {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\tif Config.Automigrate {\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tlog.Warn(\"Running database automigration\")\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t\tdb.AutoMigrate(\u0026Asset{}, \u0026Session{}) // not for production use, drops and recreates the schema\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\t}\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"\treturn nil\n"},{"range":{"start":{"line":55,"character":0},"end":{"line":55,"character":0}},"newText":"}\n"}]}}}] | |
[Trace - 17:45:38.043 PM] Sending request 'textDocument/documentSymbol - (123)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:38.043 PM] Received response 'textDocument/documentSymbol - (123)' in 0ms. | |
Result: [{"name":"DatabaseConfig","detail":"struct{...}","kind":23,"range":{"start":{"line":11,"character":5},"end":{"line":15,"character":1}},"selectionRange":{"start":{"line":11,"character":5},"end":{"line":11,"character":19}},"children":[{"name":"Logging","detail":"bool","kind":8,"range":{"start":{"line":12,"character":1},"end":{"line":12,"character":22}},"selectionRange":{"start":{"line":12,"character":1},"end":{"line":12,"character":8}}},{"name":"Automigrate","detail":"bool","kind":8,"range":{"start":{"line":13,"character":1},"end":{"line":13,"character":22}},"selectionRange":{"start":{"line":13,"character":1},"end":{"line":13,"character":12}}},{"name":"Connectionstring","detail":"string","kind":8,"range":{"start":{"line":14,"character":1},"end":{"line":14,"character":24}},"selectionRange":{"start":{"line":14,"character":1},"end":{"line":14,"character":17}}}]},{"name":"db","detail":"*gorm.DB","kind":13,"range":{"start":{"line":17,"character":0},"end":{"line":17,"character":15}},"selectionRange":{"start":{"line":17,"character":4},"end":{"line":17,"character":6}}},{"name":"Config","detail":"DatabaseConfig","kind":13,"range":{"start":{"line":18,"character":0},"end":{"line":18,"character":25}},"selectionRange":{"start":{"line":18,"character":4},"end":{"line":18,"character":10}}},{"name":"OpenSqliteConnection","detail":"()","kind":12,"range":{"start":{"line":21,"character":0},"end":{"line":35,"character":1}},"selectionRange":{"start":{"line":21,"character":5},"end":{"line":21,"character":25}}},{"name":"ReadConfigFile","detail":"()","kind":12,"range":{"start":{"line":38,"character":0},"end":{"line":44,"character":1}},"selectionRange":{"start":{"line":38,"character":5},"end":{"line":38,"character":19}}},{"name":"Automigrate","detail":"()","kind":12,"range":{"start":{"line":47,"character":0},"end":{"line":54,"character":1}},"selectionRange":{"start":{"line":47,"character":5},"end":{"line":47,"character":16}}}] | |
[Trace - 17:45:38.656 PM] Sending request 'textDocument/documentLink - (124)'. | |
Params: {"textDocument":{"uri":"file:///c%3A/Users/noflo/go/src/jarvis-server/app/models/initialize.go"}} | |
[Trace - 17:45:38.656 PM] Received response 'textDocument/documentLink - (124)' in 0ms. | |
Result: [{"range":{"start":{"line":3,"character":1},"end":{"line":3,"character":33}},"target":"https://godoc.org/github.com/sirupsen/logrus"},{"range":{"start":{"line":4,"character":1},"end":{"line":4,"character":25}},"target":"https://godoc.org/github.com/spf13/viper"},{"range":{"start":{"line":6,"character":1},"end":{"line":6,"character":25}},"target":"https://godoc.org/github.com/jinzhu/gorm"},{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":43}},"target":"https://godoc.org/github.com/jinzhu/gorm/dialects/sqlite"}] | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment