diff --git a/server/handlers/fstab/analyzer/fields.go b/server/handlers/fstab/analyzer/fields.go index 1f8b054..371e243 100644 --- a/server/handlers/fstab/analyzer/fields.go +++ b/server/handlers/fstab/analyzer/fields.go @@ -83,46 +83,8 @@ func analyzeFieldAreFilled( Character: entry.Fields.FilesystemType.End.Character, }, }, - Message: "The options field is missing", - Severity: &common.SeverityError, - }) - - continue - } - - if entry.Fields.Freq == nil || entry.Fields.Freq.Value.Value == "" { - ctx.diagnostics = append(ctx.diagnostics, protocol.Diagnostic{ - Range: protocol.Range{ - Start: protocol.Position{ - Line: entry.Fields.Start.Line, - Character: entry.Fields.Options.End.Character, - }, - End: protocol.Position{ - Line: entry.Fields.Start.Line, - Character: entry.Fields.Options.End.Character, - }, - }, - Message: "The freq field is missing", - Severity: &common.SeverityError, - }) - - continue - } - - if entry.Fields.Pass == nil || entry.Fields.Pass.Value.Value == "" { - ctx.diagnostics = append(ctx.diagnostics, protocol.Diagnostic{ - Range: protocol.Range{ - Start: protocol.Position{ - Line: entry.Fields.Start.Line, - Character: entry.Fields.Freq.End.Character, - }, - End: protocol.Position{ - Line: entry.Fields.Start.Line, - Character: entry.Fields.Freq.End.Character, - }, - }, - Message: "The pass field is missing", - Severity: &common.SeverityError, + Message: `The options field is empty. The usual convention is to use at least "defaults" keyword there.`, + Severity: &common.SeverityWarning, }) continue diff --git a/server/handlers/fstab/analyzer/values.go b/server/handlers/fstab/analyzer/values.go index fd6d731..bd7d8ba 100644 --- a/server/handlers/fstab/analyzer/values.go +++ b/server/handlers/fstab/analyzer/values.go @@ -16,18 +16,26 @@ func analyzeValuesAreValid( for it.Next() { entry := it.Value().(*ast.FstabEntry) - mountOptions := entry.FetchMountOptionsField(true) checkField(ctx, entry.Fields.Spec, fields.SpecField) checkField(ctx, entry.Fields.MountPoint, fields.MountPointField) checkField(ctx, entry.Fields.FilesystemType, fields.FileSystemTypeField) - if mountOptions != nil { - checkField(ctx, entry.Fields.Options, mountOptions) + if entry.Fields.Options != nil { + mountOptions := entry.FetchMountOptionsField(true) + + if mountOptions != nil { + checkField(ctx, entry.Fields.Options, mountOptions) + } } - checkField(ctx, entry.Fields.Freq, fields.FreqField) - checkField(ctx, entry.Fields.Pass, fields.PassField) + if entry.Fields.Freq != nil { + checkField(ctx, entry.Fields.Freq, fields.FreqField) + } + + if entry.Fields.Pass != nil { + checkField(ctx, entry.Fields.Pass, fields.PassField) + } } }